interface.c: Added netmask fix.
nmbd_nameregister.c: Fixed unitialised variable warnings.
nmbd_winsproxy.c: Fixed unitialised variable warnings.
nmbd_winsserver.c: Fixed DEC warnings.
print_svid.c: Fixed DEC warnings.
printing.c: Added LPRng fixes.
Jeremy.
(This used to be commit
28aff043c4a3693a0c20e87c7ce11eb4bf285b78)
#include <netinet/tcp.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
+#if __FreeBSD__ >= 3
+#include <dirent.h>
+#else
+#define USE_DIRECT
+#endif
#define SIGNAL_CAST (void (*)())
#define USE_SETVBUF
#define USE_SETSID
#define USE_GETCWD
#define USE_WAITPID
-#define USE_DIRECT
#define HAVE_MEMMOVE
#define HAVE_BZERO
#define HAVE_GETTIMEOFDAY
#include <sys/types.h>
#include <sys/termios.h>
#include <netinet/tcp.h>
+#include <arpa/inet.h> /* needed for inet_ntoa proto */
#ifdef HPUX_10_TRUSTED
#include <hpsecurity.h>
#include <prot.h>
** Guess a netmask based on the class of the IP address given.
*/
switch((ntohl(iad->s_addr) & 0xE0000000)) {
- case 0: /* Class A addr */
+ case 0x00000000: /* Class A addr */
+ case 0x20000000:
+ case 0x40000000:
+ case 0x60000000:
inm->s_addr = htonl(0xFF000000);
break;
case 0x80000000: /* Class B addr */
+ case 0xA0000000:
inm->s_addr = htonl(0xFFFF0000);
break;
BOOL success = True;
struct nmb_name *question_name = &rrec->packet->packet.nmb.question.question_name;
struct nmb_name *answer_name = &nmb->answers->rr_name;
- int ttl;
- uint16 nb_flags;
+ int ttl = 0;
+ uint16 nb_flags = 0;
struct in_addr registered_ip;
/* Sanity check. Ensure that the answer name in the incoming packet is the
BOOL bcast = sent_nmb->header.nm_flags.bcast;
BOOL success = False;
struct nmb_name *question_name = &sent_nmb->question.question_name;
- uint16 nb_flags;
- int ttl;
+ uint16 nb_flags = 0;
+ int ttl = 0;
struct in_addr registered_ip;
if(bcast)
uint16 nb_flags;
int num_ips;
int i;
- int ttl;
+ int ttl = 3600; /* By default one hour in the cache. */
struct in_addr *iplist;
/* Extract the original packet and the original broadcast subnet from
if(namerec != NULL)
{
char ud[sizeof(struct userdata_struct) + sizeof(struct packet_struct *)];
- struct userdata_struct *userdata = (struct userdata_struct *)&ud;
+ struct userdata_struct *userdata = (struct userdata_struct *)ud;
/*
* First send a WACK to the registering machine.
if(namerec != NULL)
{
char ud[sizeof(struct userdata_struct) + sizeof(struct packet_struct *)];
- struct userdata_struct *userdata = (struct userdata_struct *)&ud;
+ struct userdata_struct *userdata = (struct userdata_struct *)ud;
/*
* First send a WACK to the registering machine.
if(rcode == 0)
{
- int same_net_index;
+ int same_net_index = -1;
ttl = (namerec->death_time != PERMANENT_TTL) ?
namerec->death_time - p->timestamp : lp_max_wins_ttl();
* ones we know the netmask for.
*/
- same_net_index = -1;
i = 0;
if(is_local_net(p->ip))
/* truncate the ": ..." */
if ((tmp = strchr(name, ':')) != NULL)
- *tmp = NULL;
+ *tmp = '\0';
/* add it to the cache */
if ((ptmp = malloc(sizeof (*ptmp))) != NULL) {
- memset(ptmp, NULL, sizeof (*ptmp));
+ memset(ptmp, '\0', sizeof (*ptmp));
ptmp->name = strdup(name);
ptmp->next = printers;
printers = ptmp;
Status: finished operations at Fri Jun 21 10:10:32 1996
Rank Owner Class Job Files Size Time
1 magnus@hum-fak A 387 /var/spool/smb/netbudget.xls 21230 10:50:53
+
+******************************************************************************
+
+NEW FOR LPRng-3.3.5 !
+
+<reinelt@eunet.at>
+This will not happen anymore: with LPRng-3.3.5 there is always a blank between
+the filename and the size, and the format has changed:
+
+Printer: lj6@lizard 'HP LaserJet 6P'
+ Queue: 2 printable jobs
+ Server: pid 11941 active
+ Unspooler: pid 11942 active
+ Status: printed all 1818 bytes at 19:49:59
+ Rank Owner/ID Class Job Files Size Time
+active root@lizard+937 A 937 (stdin) 1818 19:49:58
+2 root@lizard+969 A 969 junk.txt 2170 19:50:12
****************************************************************************/
static BOOL parse_lpq_lprng(char *line,print_queue_struct *buf,BOOL first)
string tok[LPRNG_NTOK];
int count=0;
+#ifdef OLD_LPRNG
+/* We only need this bugfix for older versions of lprng - current
+ information is that version 3.3.5 must not have this line
+ in order to work correctly.
+*/
+
/*
Need to insert one space in front of the size, to be able to use
next_token() unchanged. I would have liked to be able to insert a
*/
line[JOBSIZE_POS-1]=' ';
+#endif /* OLD_LPRNG */
/* handle the case of "(stdin)" as a filename */
string_sub(line,"stdin","STDIN");