Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.1:Update
bootp-DD2
bootp-DD2.4.3.dif
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bootp-DD2.4.3.dif of Package bootp-DD2
--- Makefile +++ Makefile @@ -13,7 +13,7 @@ OPTDEFS= -DSYSLOG -DVEND_CMU -DDHCP -DDYNAMIC -DDEBUG # Uncomment and edit this to choose the facility code used for syslog. -# LOG_FACILITY= "-DLOG_BOOTP=LOG_LOCAL2" +LOG_FACILITY= "-DLOG_BOOTP=LOG_DAEMON" # SYStem DEFinitions: # Either uncomment some of the following, or do: @@ -39,7 +39,7 @@ INSTALL=/usr/bin/install DESTDIR= BINDIR=/usr/sbin -MANDIR=/usr/local/man +MANDIR=/usr/share/man CFLAGS= $(OPTDEFS) $(SYSDEFS) $(FILEDEFS) $(MOREDEFS) PROGS= bootpd bootpef bootpgw bootptest @@ -49,15 +49,18 @@ system: install -install: $(PROGS) +install: $(PROGS) install.man + $(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR) -for f in $(PROGS) ;\ do \ - $(INSTALL) -c -s $$f $(DESTDIR)$(BINDIR) ;\ + $(INSTALL) -c $$f $(DESTDIR)$(BINDIR) ;\ done MAN5= bootptab.5 MAN8= bootpd.8 bootpef.8 bootptest.8 install.man: $(MAN5) $(MAN8) + $(INSTALL) -d -m 755 $(DESTDIR)$(MANDIR)/man5 + $(INSTALL) -d -m 755 $(DESTDIR)$(MANDIR)/man8 -for f in $(MAN5) ;\ do \ $(INSTALL) -c -m 644 $$f $(DESTDIR)$(MANDIR)/man5 ;\ @@ -102,7 +105,7 @@ # Linux 1.1.80+ linux: - $(MAKE) SYSDEFS="-O6 -Wall -fomit-frame-pointer" \ + $(MAKE) SYSDEFS="-Wall $(RPM_OPT_FLAGS) -pipe" \ SYSLIBS="" \ FILEDEFS='-DCONFIG_FILE=\"/etc/bootptab\" \ -DDUMPTAB_FILE=\"/tmp/bootpd.dump\"' --- bootp.h +++ bootp.h @@ -40,21 +40,21 @@ #define BP_MINPKTSZ 300 /* to check sizeof(struct bootp) */ struct bootp { - unsigned char bp_op; /* packet opcode type */ - unsigned char bp_htype; /* hardware addr type */ - unsigned char bp_hlen; /* hardware addr length */ - unsigned char bp_hops; /* gateway hops */ - unsigned int32 bp_xid; /* transaction ID */ + byte bp_op; /* packet opcode type */ + byte bp_htype; /* hardware addr type */ + byte bp_hlen; /* hardware addr length */ + byte bp_hops; /* gateway hops */ + u_int32_t bp_xid; /* transaction ID */ unsigned short bp_secs; /* seconds since boot began */ unsigned short bp_flags; /* RFC1532 broadcast, etc. */ struct in_addr bp_ciaddr; /* client IP address */ struct in_addr bp_yiaddr; /* 'your' IP address */ struct in_addr bp_siaddr; /* server IP address */ struct in_addr bp_giaddr; /* gateway IP address */ - unsigned char bp_chaddr[BP_CHADDR_LEN]; /* client hardware address */ + byte bp_chaddr[BP_CHADDR_LEN]; /* client hardware address */ char bp_sname[BP_SNAME_LEN]; /* server host name */ char bp_file[BP_FILE_LEN]; /* boot file name */ - unsigned char bp_vend[BP_VEND_LEN]; /* vendor-specific area */ + byte bp_vend[BP_VEND_LEN]; /* vendor-specific area */ /* note that bp_vend can be longer, extending to end of packet. */ }; @@ -95,43 +95,43 @@ * the vendor (options) data area of the packet. */ /* RFC 1048 */ -#define TAG_END ((unsigned char) 255) -#define TAG_PAD ((unsigned char) 0) -#define TAG_SUBNET_MASK ((unsigned char) 1) -#define TAG_TIME_OFFSET ((unsigned char) 2) -#define TAG_GATEWAY ((unsigned char) 3) -#define TAG_TIME_SERVER ((unsigned char) 4) -#define TAG_NAME_SERVER ((unsigned char) 5) -#define TAG_DOMAIN_SERVER ((unsigned char) 6) -#define TAG_LOG_SERVER ((unsigned char) 7) -#define TAG_COOKIE_SERVER ((unsigned char) 8) -#define TAG_LPR_SERVER ((unsigned char) 9) -#define TAG_IMPRESS_SERVER ((unsigned char) 10) -#define TAG_RLP_SERVER ((unsigned char) 11) -#define TAG_HOST_NAME ((unsigned char) 12) -#define TAG_BOOT_SIZE ((unsigned char) 13) +#define TAG_END ((byte) 255) +#define TAG_PAD ((byte) 0) +#define TAG_SUBNET_MASK ((byte) 1) +#define TAG_TIME_OFFSET ((byte) 2) +#define TAG_GATEWAY ((byte) 3) +#define TAG_TIME_SERVER ((byte) 4) +#define TAG_NAME_SERVER ((byte) 5) +#define TAG_DOMAIN_SERVER ((byte) 6) +#define TAG_LOG_SERVER ((byte) 7) +#define TAG_COOKIE_SERVER ((byte) 8) +#define TAG_LPR_SERVER ((byte) 9) +#define TAG_IMPRESS_SERVER ((byte) 10) +#define TAG_RLP_SERVER ((byte) 11) +#define TAG_HOST_NAME ((byte) 12) +#define TAG_BOOT_SIZE ((byte) 13) /* RFC 1395 */ -#define TAG_DUMP_FILE ((unsigned char) 14) -#define TAG_DOMAIN_NAME ((unsigned char) 15) -#define TAG_SWAP_SERVER ((unsigned char) 16) -#define TAG_ROOT_PATH ((unsigned char) 17) +#define TAG_DUMP_FILE ((byte) 14) +#define TAG_DOMAIN_NAME ((byte) 15) +#define TAG_SWAP_SERVER ((byte) 16) +#define TAG_ROOT_PATH ((byte) 17) /* RFC 1497 */ -#define TAG_EXTEN_FILE ((unsigned char) 18) +#define TAG_EXTEN_FILE ((byte) 18) /* RFC 1533 */ -#define TAG_NIS_DOMAIN ((unsigned char) 40) -#define TAG_NIS_SERVER ((unsigned char) 41) -#define TAG_NTP_SERVER ((unsigned char) 42) +#define TAG_NIS_DOMAIN ((byte) 40) +#define TAG_NIS_SERVER ((byte) 41) +#define TAG_NTP_SERVER ((byte) 42) /* Added for auto/dynamic IP addressing */ -#define TAG_DYNAMIC_OPTIONS ((unsigned char) 250) -#define TAG_DYNAMIC_FORCE ((unsigned char) 253) -#define TAG_DYNAMIC_SIZE ((unsigned char) 254) +#define TAG_DYNAMIC_OPTIONS ((byte) 250) +#define TAG_DYNAMIC_FORCE ((byte) 253) +#define TAG_DYNAMIC_SIZE ((byte) 254) /* DHCP maximum message size. */ -#define TAG_DHCP_IPLEASE ((unsigned char) 51) -#define TAG_DHCP_MSG ((unsigned char) 53) -#define TAG_DHCP_SERVERID ((unsigned char) 54) -#define TAG_MAX_MSGSZ ((unsigned char) 57) -#define TAG_DHCP_IPRENEW ((unsigned char) 58) /* PeP hic facet */ -#define TAG_DHCP_IPREBIND ((unsigned char) 59) +#define TAG_DHCP_IPLEASE ((byte) 51) +#define TAG_DHCP_MSG ((byte) 53) +#define TAG_DHCP_SERVERID ((byte) 54) +#define TAG_MAX_MSGSZ ((byte) 57) +#define TAG_DHCP_IPRENEW ((byte) 58) /* PeP hic facet */ +#define TAG_DHCP_IPREBIND ((byte) 59) /* XXX - Add new tags here */ @@ -141,13 +141,13 @@ struct cmu_vend { char v_magic[4]; /* magic number */ - unsigned int32 v_flags; /* flags/opcodes, etc. */ + u_int32_t v_flags; /* flags/opcodes, etc. */ struct in_addr v_smask; /* Subnet mask */ struct in_addr v_dgate; /* Default gateway */ struct in_addr v_dns1, v_dns2; /* Domain name servers */ struct in_addr v_ins1, v_ins2; /* IEN-116 name servers */ struct in_addr v_ts1, v_ts2; /* Time servers */ - int32 v_unused[6]; /* currently unused */ + int32_t v_unused[6]; /* currently unused */ }; --- bootpd.c +++ bootpd.c @@ -79,8 +79,10 @@ #ifdef __linux__ /* Use sigaction to make signal last... */ inline void (*signal(int sig,void (*handler)(int)))(int) { - struct sigaction so,sa = {NULL,0,SA_NOMASK|SA_RESTART,NULL}; + struct sigaction so,sa; sa.sa_handler = handler; + sa.sa_flags = SA_NOMASK|SA_RESTART; + sigemptyset(&sa.sa_mask); if (sigaction(sig,&sa,&so)<0) return NULL; return so.sa_handler; } @@ -879,6 +881,8 @@ int i_got_dynamic=0; #endif /* DYNAMIC */ + bp->bp_file[127] = '\0'; + /* XXX - SLIP init: Set bp_ciaddr = recv_addr here? */ /* @@ -1010,11 +1014,12 @@ */ /* Run a program, passing the client name as a parameter. */ if (hp->flags.exec_file) { - char tst[100]; + char tst[512]; + memset(tst,0, sizeof(tst)); /* XXX - Check string lengths? -gwr */ - strcpy (tst, hp->exec_file->string); + strncpy (tst, hp->exec_file->string, sizeof(tst)-250); strcat (tst, " "); - strcat (tst, hp->hostname->string); + strncat (tst, hp->hostname->string, sizeof(tst)-strlen(tst)-5); strcat (tst, " &"); if (debug) report(LOG_INFO, "executing %s", tst); @@ -1630,10 +1635,10 @@ return 0; /* Not mine, discard! */ switch (dhcp) { - case 1 : len = dhcp_discover(bp,hp,vp,bytesleft-1); break; - case 3 : len = dhcp_request(bp,hp,vp,bytesleft-1); break; - case 4 : len = dhcp_decline(bp,hp,vp,bytesleft-1); break; - case 7 : len = dhcp_release(bp,hp,vp,bytesleft-1); break; + case 1 : len = dhcp_discover(bp,hp,vp,bytesleft); break; + case 3 : len = dhcp_request(bp,hp,vp,bytesleft); break; + case 4 : len = dhcp_decline(bp,hp,vp,bytesleft); break; + case 7 : len = dhcp_release(bp,hp,vp,bytesleft); break; default : report(LOG_NOTICE,"Unknown DHCP request (%d)",dhcp); return 0; } @@ -1650,7 +1655,7 @@ * function (which is shared with bootpef.c). * Keep back one byte for the TAG_END. */ - len = dovend_rfc1497(hp, vp, bytesleft - 1); + len = dovend_rfc1497(hp, vp, bytesleft); vp += len; bytesleft -= len; #ifdef DHCP @@ -1769,7 +1774,8 @@ *vp++ = 2; /* DHCPOFFER */ len += 3; - len += dhcp_lease(bp,hp,&vp); + if (hp->dhcp_lease) + len += dhcp_lease(bp,hp,&vp); *vp++ = TAG_DHCP_SERVERID; *vp++ = 4; @@ -1829,7 +1835,8 @@ *vp++ = 5; len += 3; - len += dhcp_lease(bp,hp,&vp); + if (hp->dhcp_lease) + len += dhcp_lease(bp,hp,&vp); *vp++ = TAG_DHCP_SERVERID; /* Server id */ *vp++ = 4; --- bootpd.h +++ bootpd.h @@ -183,12 +183,12 @@ htype, /* RFC826 says this should be 16-bits but RFC951 only allocates 1 byte. . . */ haddr[MAXHADDRLEN]; - int32 time_offset; - unsigned int32 bootsize, + int32_t time_offset; + u_int32_t bootsize, msg_size, min_wait; #ifdef DHCP - unsigned int32 dhcp_lease; /* PeP hic facet */ + u_int32_t dhcp_lease; /* PeP hic facet */ #endif struct in_addr bootserver, iaddr, @@ -214,4 +214,3 @@ extern hash_tbl *hwhashtable; extern hash_tbl *iphashtable; extern hash_tbl *nmhashtable; - --- bptypes.h +++ bptypes.h @@ -3,14 +3,14 @@ #ifndef BPTYPES_H #define BPTYPES_H +#include <stdint.h> + /* * 32 bit integers are different types on various architectures */ -#ifndef int32 -#define int32 long -#endif -typedef unsigned int32 u_int32; +typedef int32_t int32; +typedef u_int32_t u_int32; /* * Nice typedefs. . . --- dovend.c +++ dovend.c @@ -151,7 +151,7 @@ if (insert_ip(TAG_NIS_SERVER, hp->nis_server, &vp, &bytesleft)) - NEED(8, "ds"); + NEED(8, "ys"); } if (hp->flags.nis_domain) { /* @@ -159,7 +159,7 @@ * TAG_NIS_DOMAIN and length. */ len = strlen(hp->nis_domain->string); - NEED((len + 2), "dn"); + NEED((len + 2), "yd"); *vp++ = TAG_NIS_DOMAIN; *vp++ = (byte) (len & 0xFF); bcopy(hp->nis_domain->string, vp, len); @@ -191,7 +191,7 @@ if (insert_ip(TAG_NTP_SERVER, hp->ntp_server, &vp, &bytesleft)) - NEED(8, "ts"); + NEED(8, "nt"); } /* * I wonder: If the hostname were "promoted" into the BOOTP --- dumptab.c +++ dumptab.c @@ -5,6 +5,10 @@ #include <sys/types.h> #include <netinet/in.h> #include <arpa/inet.h> /* inet_ntoa */ +#include <unistd.h> +#include <sys/stat.h> +#include <fcntl.h> + #include <stdio.h> #include <stdlib.h> @@ -57,6 +61,7 @@ char *filename; { int n; + int fd; struct host *hp; FILE *fp; long t; @@ -103,7 +108,15 @@ /* * Open bootpd.dump file. */ - if ((fp = fopen(filename, "w")) == NULL) { + unlink(filename); + if ((fd = open(filename, O_RDWR | O_CREAT | O_EXCL, 0600)) < 0) { + report(LOG_ERR, "error opening \"%s\": %s", + filename, get_errmsg()); + exit(1); + + } + + if ((fp = fdopen(fd, "w")) == NULL) { report(LOG_ERR, "error opening \"%s\": %s", filename, get_errmsg()); exit(1); @@ -150,7 +163,7 @@ if (hp->flags.bootsize_auto) { fprintf(fp, "auto:"); } else { - fprintf(fp, "%d:", hp->bootsize); + fprintf(fp, "%ld:", hp->bootsize); } } if (hp->flags.cookie_server) { @@ -218,10 +231,10 @@ fprintf(fp, ":"); } if (hp->flags.msg_size) { - fprintf(fp, "\\\n\t:ms=%d:", hp->msg_size); + fprintf(fp, "\\\n\t:ms=%ld:", hp->msg_size); } if (hp->flags.min_wait) { - fprintf(fp, "\\\n\t:mw=%d:", hp->min_wait); + fprintf(fp, "\\\n\t:mw=%ld:", hp->min_wait); } if (hp->flags.name_server) { fprintf(fp, "\\\n\t:ns="); --- getether.c +++ getether.c @@ -329,7 +329,9 @@ #include <memory.h> #include <sys/ioctl.h> #include <net/if.h> /* struct ifreq */ +#if !defined(__GLIBC__) #include <sys/socketio.h> /* Needed for IOCTL defs */ +#endif int getether(ifname, eap) --- hwaddr.c +++ hwaddr.c @@ -22,6 +22,11 @@ #include <net/if.h> /* for struct ifnet in net/if_arp.h */ #endif +#if defined __GLIBC__ && __GLIBC__ >= 2 +#else +#include <linux/netdevice.h> +#endif + #include <net/if_arp.h> #include <netinet/in.h> @@ -117,7 +122,7 @@ char *p; bzero((caddr_t) &arpreq, sizeof(arpreq)); - arpreq.arp_flags = ATF_INUSE | ATF_COM; + arpreq.arp_flags = ATF_COM; /* Set up the protocol address. */ arpreq.arp_pa.sa_family = AF_INET; --- print-bootp.c +++ print-bootp.c @@ -120,7 +120,7 @@ printf(" hops:%d", bp->bp_hops); if (bp->bp_xid) - printf(" xid:%d", ntohl(bp->bp_xid)); + printf(" xid:%ld", ntohl(bp->bp_xid)); if (bp->bp_secs) printf(" secs:%d", ntohs(bp->bp_secs)); @@ -341,7 +341,7 @@ case 'l': /* Long words */ while (len >= 4) { bcopy((char *) bp, (char *) &ul, 4); - printf("%d", ntohl(ul)); + printf("%ld", ntohl(ul)); bp += 4; len -= 4; if (len) printf(","); --- report.c +++ report.c @@ -10,6 +10,7 @@ #include <stdio.h> #include <syslog.h> +#include <errno.h> #include "report.h" @@ -101,7 +102,7 @@ #endif { va_list ap; - static char buf[128]; + static char buf[256]; if ((priority < 0) || (priority >= numlevels)) { priority = numlevels - 1; @@ -111,7 +112,7 @@ #else va_start(ap); #endif - vsprintf(buf, fmt, ap); + vsnprintf(buf, sizeof (buf), fmt, ap); va_end(ap); /* --- tzone.c +++ tzone.c @@ -14,12 +14,12 @@ # include <syslog.h> #endif /* SVR4 */ -#include "bptypes.h" +#include <stdint.h> #include "report.h" #include "tzone.h" /* This is what other modules use. */ -int32 secondswest; +int32_t secondswest; /* * Get our timezone offset so we can give it to clients if the --- tzone.h +++ tzone.h @@ -1,3 +1,3 @@ /* tzone.h */ -extern int32 secondswest; +extern int32_t secondswest; extern void tzone_init();
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor