diff --git a/source/lib/util.c b/source/lib/util.c index 365a7651742..18614caeed8 100644 --- a/source/lib/util.c +++ b/source/lib/util.c @@ -2002,20 +2002,20 @@ read from a socket int read_udp_socket(int fd,char *buf,int len) { int ret; - struct sockaddr sock; + struct sockaddr_in sock; int socklen; socklen = sizeof(sock); bzero((char *)&sock,socklen); bzero((char *)&lastip,sizeof(lastip)); - ret = recvfrom(fd,buf,len,0,&sock,&socklen); + ret = recvfrom(fd,buf,len,0,(struct sockaddr *)&sock,&socklen); if (ret <= 0) { DEBUG(2,("read socket failed. ERRNO=%s\n",strerror(errno))); return(0); } - lastip = *(struct in_addr *) &sock.sa_data[2]; - lastport = ntohs(((struct sockaddr_in *)&sock)->sin_port); + lastip = sock.sin_addr; + lastport = ntohs(sock.sin_port); DEBUG(10,("read_udp_socket: lastip %s lastport %d read: %d\n", inet_ntoa(lastip), lastport, ret)); diff --git a/source/nmbd/nmbd_incomingdgrams.c b/source/nmbd/nmbd_incomingdgrams.c index 46d988e89af..80057ef12c9 100644 --- a/source/nmbd/nmbd_incomingdgrams.c +++ b/source/nmbd/nmbd_incomingdgrams.c @@ -449,8 +449,8 @@ void process_lm_host_announce(struct subnet_record *subrec, struct packet_struct if ((osmajor < 36) || (osmajor > 38) || (osminor !=0)) { - DEBUG(5,("process_lm_host_announce: LM Announcement packet does not " \ - "originate from OS/2 Warp client. Ignoring packet.\n")); + DEBUG(5,("process_lm_host_announce: LM Announcement packet does not \ +originate from OS/2 Warp client. Ignoring packet.\n")); /* Could have been from a Windows machine (with its LM Announce enabled), or a Samba server. Then don't disrupt the current browse list. */ return; diff --git a/source/nmbd/nmbd_sendannounce.c b/source/nmbd/nmbd_sendannounce.c index 62e5f02d8c8..e39e2514966 100644 --- a/source/nmbd/nmbd_sendannounce.c +++ b/source/nmbd/nmbd_sendannounce.c @@ -529,7 +529,7 @@ void announce_remote(time_t t) send_announcement(FIRST_SUBNET, ANN_HostAnnouncement, name, /* From nbt name. */ - wgroup, 0x1e, /* To nbt name. */ + wgroup, 0x1d, /* To nbt name. */ addr, /* To ip. */ REMOTE_ANNOUNCE_INTERVAL, /* Time until next announce. */ name, /* Name to announce. */ diff --git a/source/utils/nmblookup.c b/source/utils/nmblookup.c index 5cd5a869a99..a73a35cd56c 100644 --- a/source/utils/nmblookup.c +++ b/source/utils/nmblookup.c @@ -170,12 +170,13 @@ int main(int argc,char *argv[]) exit(1); } + init_structs(); + if (!lp_load(servicesf,True)) { fprintf(stderr, "Can't load %s - run testparm to debug it\n", servicesf); } load_interfaces(); - init_structs(); if (!open_sockets()) return(1); if (!got_bcast) diff --git a/source/utils/testparm.c b/source/utils/testparm.c index cc35d2d530e..a35a3fd71e0 100644 --- a/source/utils/testparm.c +++ b/source/utils/testparm.c @@ -38,6 +38,7 @@ /* these live in util.c */ extern FILE *dbf; extern int DEBUGLEVEL; +extern pstring myhostname; int main(int argc, char *argv[]) { @@ -60,6 +61,12 @@ extern int DEBUGLEVEL; printf("Load smb config files from %s\n",configfile); + if(!get_myname(myhostname,NULL)) + { + printf("Failed to get my hostname.\n"); + return(1); + } + if (!lp_load(configfile,False)) { printf("Error loading services.\n"); diff --git a/source/wsmbstatus.c b/source/wsmbstatus.c index fd576620623..60c35357b21 100644 --- a/source/wsmbstatus.c +++ b/source/wsmbstatus.c @@ -43,6 +43,12 @@ static void show_connections(void) FILE *f; struct connect_record crec; + if(!get_myname(myhostname,NULL)) + { + printf("Failed to get my hostname.\n"); + return; + } + if (!lp_load(servicesf,False)) { printf("Can't load %s - run testparm to debug it\n", servicesf); return;