Преглед изворни кода

* Changed egg_version/egg_numver to const
* Fixed autoconf/build for new position of said vars
* Fixed build for FreeBSD (no /proc for PID)
* Changed update.mod to use buildts
* Changed build to use gawk for awk when needed


svn: 403

Bryan Drewery пре 22 година
родитељ
комит
3cd102e333
7 измењених фајлова са 38 додато и 31 уклоњено
  1. 15 7
      build
  2. 2 2
      configure
  3. 6 5
      src/cmds.c
  4. 5 7
      src/main.c
  5. 1 1
      src/mod/module.h
  6. 7 7
      src/mod/update.mod/update.c
  7. 2 2
      src/modules.c

+ 15 - 7
build

@@ -2,20 +2,29 @@
 
 
 # Awk out the version from source
+AWK="`which awk`"
+if test -z "${AWK}"; then
+ AWK="`which gawk`"
+fi
+
 ver="?.?.?"
-ver=`grep "char" src/main.c | awk '/egg_version/ {print $4}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
-numver=`grep "int" src/main.c | awk '/egg_numver =/ {print $4}' |  sed -e 's/\;//g'`
-PACKNAME=`grep "PACKNAME " pack/pack.cfg | awk '/PACKNAME/ {print $2}'`
-BUILDTS=`cat src/build.h | awk '{print $3}'`
+ver=`grep "char" src/main.c | $AWK '/egg_version/ {print $5}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
+numver=`grep "int" src/main.c | $AWK '/egg_numver =/ {print $5}' |  sed -e 's/\;//g'`
+PACKNAME=`grep "PACKNAME " pack/pack.cfg | $AWK '/PACKNAME/ {print $2}'`
+BUILDTS=`cat src/build.h | $AWK '{print $3}'`
 builddate=`perl -e "use POSIX 'strftime';print strftime(\"%m.%d.%Y\n\",gmtime(${BUILDTS}));"`
 
 clear
 #Display a banner
 bt=`grep -A 3 "char \*wbanner() {" src/misc.c | grep "switch" | sed -e "s/.*switch (r % \(.\)) {/\1/"`
-bn=$[(`cat /proc/self/stat | awk '{print $1}'` % ${bt})]
+if test -f /proc/self/stat; then
+  bn=$[(`cat /proc/self/stat | $AWK '{print $1}'` % ${bt})]
+else
+  bn=$[(`date +%s` % ${bt})]
+fi
 banner=`grep -A 15 "char \*wbanner() {" src/misc.c | grep "case ${bn}:" | sed -e "s/.*case ${bn}: return STR(\"\(.*\)\");/\1/"`
 echo -e "${banner}"
-echo -e "Version:   ${ver} (${numver})\nBuild:     ${builddate}"
+echo -e "Version:   ${ver}\nBuild:     ${builddate}"
 echo -e `grep -r "http://" src/misc.c | sed -e "s/dprintf(idx, STR(\"\(.*\)\"));/\1/"`
 echo
 
@@ -134,7 +143,6 @@ if test -z "${MAKE}"; then
  MAKE="`which make`"
 fi
 
-echo "[*] Using '${MAKE}'"
 
 if [ $clean = "1" ]; then
  echo "[*] Cleaning up old binaries/files..."

+ 2 - 2
configure

@@ -12364,8 +12364,8 @@ EOF
 fi
 
 
-VERSION=`grep "char" $srcdir/src/main.c | $AWK '/egg_version/ {print $4}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
-NUMVER=`grep "int" $srcdir/src/main.c | $AWK '/egg_numver =/ {print $4}' |  sed -e 's/\;//g'`
+VERSION=`grep "char" $srcdir/src/main.c | $AWK '/egg_version/ {print $5}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
+NUMVER=`grep "int" $srcdir/src/main.c | $AWK '/egg_numver =/ {print $5}' |  sed -e 's/\;//g'`
 if ! test -f $srcdir/pack/pack.cfg; then
  cat << 'EOF' >&2
 configure: error:

+ 6 - 5
src/cmds.c

@@ -25,7 +25,7 @@ extern tcl_timer_t	 *timer, *utimer;
 extern int		 dcc_total, remote_boots, backgrd, 
 			 do_restart, conmask, must_be_owner,
 			 strict_host, quiet_save, cfg_count,
-			 server_lag;
+			 server_lag, egg_numver;
 
 extern unsigned long	 otraffic_irc, otraffic_irc_today,
 			 itraffic_irc, itraffic_irc_today,
@@ -40,7 +40,7 @@ extern unsigned long	 otraffic_irc, otraffic_irc_today,
 extern Tcl_Interp 	 *interp;
 extern char		 botnetnick[], origbotname[], ver[], network[],
 			 owner[], quit_msg[], dcc_prefix[], 
-                         botname[], *binname, egg_version[];
+                         botname[], *binname, version[], egg_version[];
 extern time_t		 now, online_since, buildts;
 extern module_entry	 *module_list;
 extern struct cfg_entry  CFG_MOTD, **cfg;
@@ -603,8 +603,9 @@ static void cmd_about(struct userrec *u, int idx, char *par)
   putlog(LOG_CMDS, "*", STR("#%s# about"), dcc[idx].nick);
   dprintf(idx, STR("Wraith by bryan\n"));
   egg_strftime(c, sizeof c, "%c %Z", gmtime(&buildts));
-  dprintf(idx, STR("Version: %s\nBuild: %s (%lu)\n"), egg_version, c, buildts);
-  dprintf(idx, STR("..with credits and thanks to the following:\n"), egg_version);
+  dprintf(idx, STR("Version: %s (%d) \n"), egg_version, egg_numver);
+  dprintf(idx, STR("Build: %s (%lu)\n"), c, buildts);
+  dprintf(idx, STR("..with credits and thanks to the following:\n"));
   dprintf(idx, STR("(written from a base of Eggdrop 1.6.12)\n\n"));
   dprintf(idx, STR("Eggdrop team for developing such a great bot to code off of.\n"));
   dprintf(idx, STR("Einride and ievil for taking eggdrop1.4.3 and making their very effecient botpack Ghost.\n"));
@@ -3506,7 +3507,7 @@ void rcmd_ver(char * fbot, char * fhand, char * fidx) {
 #ifdef HAVE_UNAME
   struct utsname un;
 #endif /* HAVE_UNAME */
-  sprintf(tmp, STR("%s "), ver);
+  sprintf(tmp, STR("%s "), version);
 #ifdef HAVE_UNAME
   if (uname(&un) < 0) {
 #endif /* HAVE_UNAME */

+ 5 - 7
src/main.c

@@ -79,9 +79,9 @@ extern jmp_buf		 alarmret;
 int 	role;
 int 	loading = 0;
 
-const time_t buildts = CVSBUILD;		/* build timestamp (UTC) */
-char	egg_version[1024] = "1.0.11";
-int	egg_numver = 1001100;
+const time_t 	buildts = CVSBUILD;		/* build timestamp (UTC) */
+const char	egg_version[1024] = "1.0.11";
+const int	egg_numver = 1001100;
 time_t 	lastfork=0;
 
 #ifdef HUB
@@ -1406,10 +1406,8 @@ int main(int argc, char **argv)
     Context;
 
   /* Version info! */
-  egg_snprintf(ver, sizeof ver, "wraith %s", egg_version);
-  egg_snprintf(version, sizeof version, "wraith %s", egg_version);
-  /* Now add on the patchlevel (for Tcl) */
-  sprintf(&egg_version[strlen(egg_version)], " (%u)", egg_numver);
+  egg_snprintf(ver, sizeof ver, "Wraith %s", egg_version);
+  egg_snprintf(version, sizeof version, "Wraith %s (%u/%lu)", egg_version, egg_numver, buildts);
 #ifdef STOP_UAC
   {
     int nvpair[2];

+ 1 - 1
src/mod/module.h

@@ -359,7 +359,7 @@
 #define stripmasktype ((const char *(*)(int))global[203])
 /* 204 - 207 */
 #define online_since (*(int *)(global[204]))
-/* 205 -- UNUSED */
+#define buildts (*(const int *)(global[205]))
 /* 206 -- UNUSED */
 #define check_dcc_attrs ((int (*)(struct userrec *,int))global[207])
 /* 208 - 211 */

+ 7 - 7
src/mod/update.mod/update.c

@@ -136,7 +136,7 @@ return;
   dcc[idx].status &= ~(STAT_GETTINGU | STAT_SENDINGU |
                        STAT_OFFEREDU);
 
-  if ((dcc[idx].u.bot->numver < egg_numver)
+  if ((dcc[idx].u.bot->buildts < buildts)
       && (isupdatehub())) {
     dprintf(idx, "sb u?\n");
     dcc[idx].status |= STAT_OFFEREDU;
@@ -158,7 +158,7 @@ static botcmd_t C_update[] =
 static void got_nu(char *botnick, char *code, char *par)
 {
 /* needupdate? curver */
-  int newver = 0;
+  time_t newts;
 #ifdef LEAF
   tand_t *bot;
   struct bot_addr *bi,
@@ -171,10 +171,10 @@ static void got_nu(char *botnick, char *code, char *par)
     return;
   if (localhub && updated)
     return;
-#endif
+#endif /* LEAF */
    if (!par[0]) return;
-   newver = atoi(newsplit(&par));
-   if (newver > egg_numver) {
+   newts = atoi(newsplit(&par));
+   if (newts > buildts) {
 #ifdef LEAF
      u1 = get_user_by_handle(userlist, botnetnick);
      obi = get_user(&USERENTRY_BOTADDR, u1);
@@ -425,7 +425,7 @@ static void check_updates()
       dcc[i].status &= ~(STAT_GETTINGU | STAT_SENDINGU |
                        STAT_OFFEREDU);
 
-      if ((dcc[i].u.bot->numver < egg_numver)
+      if ((dcc[i].u.bot->buildts < buildts)
         && (isupdatehub())) {
         dprintf(i, "sb u?\n");
         dcc[i].status |= STAT_OFFEREDU;
@@ -434,7 +434,7 @@ static void check_updates()
   }
 
   //send out notice to update remote bots ...
-  sprintf(buf, "nu? %d", egg_numver);
+  sprintf(buf, "nu? %d", buildts);
   putallbots(buf);
 }
 #endif

+ 2 - 2
src/modules.c

@@ -39,7 +39,7 @@ extern int	 	 noshare, loading, role, server_lag,
 			 use_invites, use_exempts, 
                          force_expire, do_restart, timesync,
 			 protect_readonly, reserved_port_min, reserved_port_max;
-extern time_t now, online_since;
+extern time_t now, online_since, buildts;
 extern struct chanset_t *chanset;
 extern tand_t *tandbot;
 extern party_t *party;
@@ -411,7 +411,7 @@ Function global_table[] =
   (Function) stripmasktype,
   /* 204 - 207 */
   (Function) & online_since,	/* time_t *				*/
-  (Function) 0,
+  (Function) & buildts,		/* time_t *				*/
   (Function) 0,
   (Function) check_dcc_attrs,
   /* 208 - 211 */