Masanobu Yasui authored on 2009/07/18 02:38:12
Showing 10 changed files
... ...
@@ -1,5 +1,6 @@
1 1
 1.2.2:
2
- - Support for solaris.
2
+ - Support for solaris10(Intel).
3
+ - makuosan.sysv 'status' and 'stop' option implement.
3 4
 
4 5
 1.2.1: 2009/6/16
5 6
  - refactoring for msync.
... ...
@@ -1,5 +1,5 @@
1 1
 1.2.2:
2
- - Solarisに対応
2
+ - Solaris10(Intel)に対応
3 3
 
4 4
 1.2.1: 2009/6/16
5 5
  - msyncをリファクタリング
... ...
@@ -968,7 +968,8 @@ int data_safeset16(mdata *data, uint16_t val)
968 968
   if(data->head.szdata + sizeof(uint16_t) > MAKUO_BUFFER_SIZE){
969 969
     return(-1);
970 970
   }
971
-  *(uint16_t *)(data->data + data->head.szdata) = htons(val);
971
+  val = htons(val);
972
+  memcpy((void *)(data->data + data->head.szdata), (void *)(&val), sizeof(val));
972 973
   data->head.szdata += sizeof(uint16_t);
973 974
   return(0);
974 975
 }
... ...
@@ -978,7 +979,8 @@ int data_safeset32(mdata *data, uint32_t val)
978 978
   if(data->head.szdata + sizeof(uint32_t) > MAKUO_BUFFER_SIZE){
979 979
     return(-1);
980 980
   }
981
-  *(uint32_t *)(data->data + data->head.szdata) = htonl(val);
981
+  val = htonl(val);
982
+  memcpy((void *)(data->data + data->head.szdata), (void *)(&val), sizeof(val));
982 983
   data->head.szdata += sizeof(uint32_t);
983 984
   return(0);
984 985
 }
... ...
@@ -1,6 +1,6 @@
1 1
 #! /bin/sh
2 2
 # Guess values for system-dependent variables and create Makefiles.
3
-# Generated by GNU Autoconf 2.61 for makuosan 1.2.2.
3
+# Generated by GNU Autoconf 2.61 for makuosan 1.2.2-rc1.
4 4
 #
5 5
 # Report bugs to <info-makuosan@klab.jp>.
6 6
 #
... ...
@@ -574,8 +574,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
574 574
 # Identity of this package.
575 575
 PACKAGE_NAME='makuosan'
576 576
 PACKAGE_TARNAME='makuosan'
577
-PACKAGE_VERSION='1.2.2'
578
-PACKAGE_STRING='makuosan 1.2.2'
577
+PACKAGE_VERSION='1.2.2-rc1'
578
+PACKAGE_STRING='makuosan 1.2.2-rc1'
579 579
 PACKAGE_BUGREPORT='info-makuosan@klab.jp'
580 580
 
581 581
 ac_unique_file="makuosan.c"
... ...
@@ -1209,7 +1209,7 @@ if test "$ac_init_help" = "long"; then
1209 1209
   # Omit some internal or obsolete options to make the list less imposing.
1210 1210
   # This message is too long to be a string in the A/UX 3.1 sh.
1211 1211
   cat <<_ACEOF
1212
-\`configure' configures makuosan 1.2.2 to adapt to many kinds of systems.
1212
+\`configure' configures makuosan 1.2.2-rc1 to adapt to many kinds of systems.
1213 1213
 
1214 1214
 Usage: $0 [OPTION]... [VAR=VALUE]...
1215 1215
 
... ...
@@ -1275,7 +1275,7 @@ fi
1275 1275
 
1276 1276
 if test -n "$ac_init_help"; then
1277 1277
   case $ac_init_help in
1278
-     short | recursive ) echo "Configuration of makuosan 1.2.2:";;
1278
+     short | recursive ) echo "Configuration of makuosan 1.2.2-rc1:";;
1279 1279
    esac
1280 1280
   cat <<\_ACEOF
1281 1281
 
... ...
@@ -1360,7 +1360,7 @@ fi
1360 1360
 test -n "$ac_init_help" && exit $ac_status
1361 1361
 if $ac_init_version; then
1362 1362
   cat <<\_ACEOF
1363
-makuosan configure 1.2.2
1363
+makuosan configure 1.2.2-rc1
1364 1364
 generated by GNU Autoconf 2.61
1365 1365
 
1366 1366
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
... ...
@@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF
1374 1374
 This file contains any messages produced by compilers while
1375 1375
 running configure, to aid debugging if configure makes a mistake.
1376 1376
 
1377
-It was created by makuosan $as_me 1.2.2, which was
1377
+It was created by makuosan $as_me 1.2.2-rc1, which was
1378 1378
 generated by GNU Autoconf 2.61.  Invocation command line was
1379 1379
 
1380 1380
   $ $0 $@
... ...
@@ -2065,7 +2065,7 @@ fi
2065 2065
 
2066 2066
 # Define the identity of the package.
2067 2067
  PACKAGE='makuosan'
2068
- VERSION='1.2.2'
2068
+ VERSION='1.2.2-rc1'
2069 2069
 
2070 2070
 
2071 2071
 cat >>confdefs.h <<_ACEOF
... ...
@@ -9206,7 +9206,7 @@ exec 6>&1
9206 9206
 # report actual input values of CONFIG_FILES etc. instead of their
9207 9207
 # values after options handling.
9208 9208
 ac_log="
9209
-This file was extended by makuosan $as_me 1.2.2, which was
9209
+This file was extended by makuosan $as_me 1.2.2-rc1, which was
9210 9210
 generated by GNU Autoconf 2.61.  Invocation command line was
9211 9211
 
9212 9212
   CONFIG_FILES    = $CONFIG_FILES
... ...
@@ -9263,7 +9263,7 @@ Report bugs to <bug-autoconf@gnu.org>."
9263 9263
 _ACEOF
9264 9264
 cat >>$CONFIG_STATUS <<_ACEOF
9265 9265
 ac_cs_version="\\
9266
-makuosan config.status 1.2.2
9266
+makuosan config.status 1.2.2-rc1
9267 9267
 configured by $0, generated by GNU Autoconf 2.61,
9268 9268
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
9269 9269
 
... ...
@@ -1,7 +1,7 @@
1 1
 #                                               -*- Autoconf -*-
2 2
 # Process this file with autoconf to produce a configure script.
3 3
 AC_PREREQ(2.61)
4
-AC_INIT(makuosan, 1.2.2, info-makuosan@klab.jp)
4
+AC_INIT(makuosan, 1.2.2-rc1, info-makuosan@klab.jp)
5 5
 AM_INIT_AUTOMAKE
6 6
 AC_CONFIG_SRCDIR([makuosan.c])
7 7
 AC_CONFIG_HEADER([config.h])
... ...
@@ -197,26 +197,28 @@ static void minit_option_getenv()
197 197
   struct group  *gr;
198 198
 
199 199
   if(env=getenv("MAKUOSAN_BASE")){
200
-    realpath(env, moption.base_dir);
200
+    if(*env){
201
+      realpath(env, moption.base_dir);
202
+    }
201 203
   }
202 204
   if(env=getenv("MAKUOSAN_PORT")){
203
-    if(atoi(env)){
205
+    if(*env && atoi(env)){
204 206
       moption.maddr.sin_port = htons(atoi(env));
205 207
       moption.laddr.sin_port = htons(atoi(env));
206 208
     }
207 209
   }
208 210
   if(env=getenv("MAKUOSAN_USER")){
209
-    if(minit_option_setuid(env)){
211
+    if(*env && minit_option_setuid(env)){
210 212
       exit(1);
211 213
     }
212 214
   }
213 215
   if(env=getenv("MAKUOSAN_GROUP")){
214
-    if(minit_option_setgid(env)){
216
+    if(*env && minit_option_setgid(env)){
215 217
       exit(1);
216 218
     }
217 219
   }
218 220
   if(env=getenv("MAKUOSAN_GROUPS")){
219
-    if(minit_option_setgids(env)){
221
+    if(*env && minit_option_setgids(env)){
220 222
       exit(1);
221 223
     }
222 224
   }
... ...
@@ -556,8 +558,10 @@ static void minit_setguid()
556 556
 static void minit_daemonize()
557 557
 {
558 558
   int pid;
559
-  if(moption.dontfork)
559
+  if(moption.dontfork){
560
+    lprintf(0, "pid       : %d\n", getpid());
560 561
     return;
562
+  }
561 563
 
562 564
   pid = fork();
563 565
   if(pid == -1){
... ...
@@ -572,8 +576,10 @@ static void minit_daemonize()
572 572
     fprintf(stderr, "%s: can't fork()\n", __func__);
573 573
     exit(1); 
574 574
   }
575
-  if(pid)
575
+  if(pid){
576
+    lprintf(0, "pid       : %d\n",pid);
576 577
     _exit(0);
578
+  }
577 579
 
578 580
   /*----- daemon process -----*/
579 581
   close(2);
... ...
@@ -97,8 +97,8 @@ static int mrecv_packet(int s, mdata *data, struct sockaddr_in *addr)
97 97
     data->head.flags  = ntohs(data->head.flags);
98 98
     data->head.reqid  = ntohl(data->head.reqid);
99 99
     data->head.seqno  = ntohl(data->head.seqno);
100
-    data->head.maddr  = ntohl(data->head.maddr);
101
-    data->head.mport  = ntohs(data->head.mport);
100
+    data->head.maddr  = data->head.maddr;
101
+    data->head.mport  = data->head.mport;
102 102
     data->head.error  = ntohl(data->head.error);
103 103
     if(data->head.maddr != moption.maddr.sin_addr.s_addr){
104 104
       continue; /* other group packet */
... ...
@@ -91,8 +91,8 @@ static int msend_packet(int s, mdata *data, struct sockaddr_in *addr)
91 91
   senddata.head.flags  = htons(senddata.head.flags);
92 92
   senddata.head.reqid  = htonl(senddata.head.reqid);
93 93
   senddata.head.seqno  = htonl(senddata.head.seqno);
94
-  senddata.head.maddr  = htonl(senddata.head.maddr);
95
-  senddata.head.mport  = htons(senddata.head.mport);
94
+  senddata.head.maddr  = senddata.head.maddr;
95
+  senddata.head.mport  = senddata.head.mport;
96 96
   senddata.head.error  = htonl(senddata.head.error);
97 97
   szdata += sizeof(mhead);
98 98
  
... ...
@@ -1230,6 +1230,7 @@ void msend(mfile *m)
1230 1230
     }
1231 1231
   }
1232 1232
 }
1233
+
1233 1234
 void msend_clean()
1234 1235
 {
1235 1236
   mfile *m = mftop[MFSEND];
... ...
@@ -56,10 +56,19 @@ install -Dp -m0755 support/makuosan.sysv %{buildroot}%{_initrddir}/makuosan
56 56
 # Default configs
57 57
 mkdir -p %{buildroot}/%{_sysconfdir}/sysconfig
58 58
 cat <<EOF >%{buildroot}/%{_sysconfdir}/sysconfig/%{name}
59
+# Base Directory (Necessity)
59 60
 BASE_DIR=""
61
+
62
+# Other
60 63
 PORT="5000"
64
+MCAST_ADDRESS="224.0.0.108"
61 65
 IP_ADDRESS="127.0.0.1"
62 66
 SOCKET=""
67
+LOGLEVEL="1"
68
+MAKUOSAN_USER=""   
69
+MAKUOSAN_GROUP=""  
70
+MAKUOSAN_GROUPS=""
71
+OPTIONS=""
63 72
 EOF
64 73
 
65 74
 %clean
... ...
@@ -18,44 +18,62 @@
18 18
 
19 19
 PATH=/sbin:/bin:/usr/bin:/usr/sbin
20 20
 
21
-BASE_DIR=""
22
-PORT="5000"
23
-IP_ADDRESS="127.0.0.1"
24
-SOCKET=""
25
-
26 21
 # Source function library.
27 22
 . /etc/init.d/functions
28 23
 
24
+export MAKUOSAN_USER
25
+export MAKUOSAN_GROUP
26
+export MAKUOSAN_GROUPS
27
+export MAKUOSAN_BASE
28
+export MAKUOSAN_PORT
29
+export MAKUOSAN_SOCK
30
+
29 31
 # Get config.
30
-test -f /etc/sysconfig/network && . /etc/sysconfig/network
32
+test -f /etc/sysconfig/network  && . /etc/sysconfig/network
31 33
 test -f /etc/sysconfig/makuosan && . /etc/sysconfig/makuosan
32
-
34
+[ -n "$BASE_DIR" ] && MAKUOSAN_BASE=$BASE_DIR;
35
+[ -n "$PORT"     ] && MAKUOSAN_PORT=$PORT
36
+[ -n "$SOCKET"   ] && MAKUOSAN_SOCK=$SOCKET
33 37
 
34 38
 # Check that networking is up.
35 39
 [ "${NETWORKING}" = "yes" ] || exit 0
36
-[ -n "${SOCKET}"] || SOCKET="-U ${SOCKET}"
37
-
38
-[ -f /usr/sbin/makuosan ] || exit 1
40
+[ -x /usr/sbin/makuosan ]   || exit 1
39 41
 
40 42
 RETVAL=0
41
-
42 43
 prog="makuosan"
43 44
 
44 45
 start(){
45 46
     # Check config.
46
-    if [ -z "${BASE_DIR}" ]; then
47
-        echo "base directory setting (BASE_DIR) is empty."
47
+    if [ -z "${MAKUOSAN_BASE}" ]; then
48
+        echo "base directory setting (MAKUOSAN_BASE) is empty."
48 49
         exit 1
49 50
     fi
50
-    if [ ! -d "${BASE_DIR}" ]; then
51
-        echo "${BASE_DIR} is not exists."
51
+    if [ ! -d "${MAKUOSAN_BASE}" ]; then
52
+        echo "${MAKUOSAN_BASE} is not exists."
52 53
         exit 1
53 54
     fi
54
-
55
+    if [ -z "$LOGLEVEL" ]; then
56
+      LOGLEVEL=1
57
+    fi
58
+    if [ -n "$MCAST_ADDRESS" ]; then
59
+      OPTIONS="-m $MCAST_ADDRESS $OPTIONS"
60
+    fi
61
+    if [ -n "$IP_ADDRESS" ]; then
62
+      OPTIONS="-l $IP_ADDRESS $OPTIONS"
63
+    fi
64
+    OPTIONS="-d $LOGLEVEL $OPTIONS"
55 65
     echo -n $"Starting $prog: "
56
-    $prog -b "$BASE_DIR" -p "$PORT" -l "$IP_ADDRESS" "$SOCKET"
66
+    $prog $OPTIONS 2>/tmp/makuosan.$$
57 67
     RETVAL=$?
58
-    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
68
+    if [ $RETVAL -eq 0 ]; then
69
+      touch /var/lock/subsys/$prog
70
+      p=`egrep '^pid ' /tmp/makuosan.$$ | cut -f 2 -d:`
71
+      echo $p > /var/run/${prog}.pid
72
+      echo_success
73
+    else
74
+      echo_failure
75
+    fi
76
+    rm -f /tmp/makuosan.$$
59 77
     echo
60 78
     return $RETVAL
61 79
 }
... ...
@@ -66,17 +84,18 @@ stop(){
66 66
     RETVAL=$?
67 67
     if [ $RETVAL -eq 0 ] ; then
68 68
         rm -f /var/lock/subsys/$prog
69
+        rm -f /var/run/${prog}.pid
69 70
     fi
70 71
     echo
71 72
     return $RETVAL
72 73
 }
73 74
 
74
-reload(){
75
-    echo -n $"Reloading configuration: "	
76
-    killproc $prog -HUP
77
-    RETVAL=$?
78
-    echo
79
-    return $RETVAL
75
+status(){
76
+  OPT="-c tcp:127.0.0.1:5000"
77
+  [ -z "$PORT"          ] && PORT=5000
78
+  [ -n "$IP_ADDRESS"    ] && OPT="-c tcp:$IPADDRESS:$PORT"
79
+  [ -n "$MAKUOSAN_SOCK" ] && OPT="-c $MAKUOSAN_SOCK"
80
+  msync $OPT --status
80 81
 }
81 82
 
82 83
 restart(){
... ...
@@ -84,12 +103,6 @@ restart(){
84 84
     start
85 85
 }
86 86
 
87
-condrestart(){
88
-    [ -e /var/lock/subsys/$prog ] && restart
89
-    return 0
90
-}
91
-
92
-
93 87
 # See how we were called.
94 88
 case "$1" in
95 89
     start)
... ...
@@ -99,19 +112,13 @@ case "$1" in
99 99
 	stop
100 100
 	;;
101 101
     status)
102
-	status $prog
102
+	status
103 103
 	;;
104 104
     restart)
105 105
 	restart
106 106
 	;;
107
-    reload)
108
-	reload
109
-	;;
110
-    condrestart)
111
-	condrestart
112
-	;;
113 107
     *)
114
-	echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
108
+	echo $"Usage: $0 {start|stop|status|restart}"
115 109
 	RETVAL=1
116 110
 esac
117 111