]> SAFE projects GIT repository - jmp/mailleur/commitdiff
scarmt start to "run"
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Sun, 13 Jul 2025 09:20:08 +0000 (05:20 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Sun, 13 Jul 2025 09:20:08 +0000 (05:20 -0400)
Makefile.dbg
app/Makefile
app/Makefile-postgres [deleted file]
app/scanner.c [deleted file]
app/scarmt.c [new file with mode: 0644]
app/sorter.c
bin

index e667988ed0b08c83b8439a84f00c999069e0ed0c..981daefe80225037d9898ab92bea28b66cbf94db 100644 (file)
@@ -14,10 +14,13 @@ EXTIP       =       safemail3.safe.ca
 EXTPORT =      25
 TESTITER=      1
 
-EMLPAR =                                               \
+DBGPAR =                                               \
           -r $(TESTDIR)                                \
           -c ./conf/$(APPNAME).conf.dvl                \
           -d 2                                         \
+
+EMLPAR =                                               \
+          $(DBGPAR)                                    \
           "$(TESTPROT)|$(TESTIP)|$(TESTPORT)|"
 
 #====================================================================
@@ -106,7 +109,7 @@ onesortr:  debug
 #procedure to start all needed components to have
 #a full complete test
 
-restart        :  killall dosortr dorcvr
+restart        :  killall dosortr dorcvr doscarmt
           @ echo "Restart completed"
 
 actions        :  debug newtest restart
@@ -126,11 +129,18 @@ dorcvr    :
             bin/receiver                               \
                $(EMLPAR)$(TESTITER)
 
-#to kill all remaining emlrcvr process
+doscarmt:
+          @ echo "Starting scanner"
+          @                                            \
+            bin/scarmt                                 \
+               $(DBGPAR)
+
+#to kill all remaining mailleur process
 killall        :
           - kill -TERM receiver
           - kill -TERM sender
           - kill -TERM sorter
+          - kill -TERM scarmt
 
 #--------------------------------------------------------------------
 #procedure to call debugger for each main component
index 6562cd77fdfb63db8075cebfd27c3e596e9dd0e5..897e7d10c3a420508d7468f9669b1f69a3128d8c 100644 (file)
@@ -21,20 +21,29 @@ clean       :
 #--------------------------------------------------------------------
 #Equivalences
 #--------------------------------------------------------------------
-EXE    =                                                       \
-       chkspf                                                  \
-       feeder                                                  \
-       receiver                                                \
-       sender                                                  \
-       sorter                                                  \
-
-SRC    =                                                       \
-       chkspf.c                                                \
-       receiver.c                                              \
-       feeder.c                                                \
-       scanner.c                                               \
-       sender.c                                                \
-       sorter.c                                                \
+EXE    =                                               \
+       chkspf                                          \
+       feeder                                          \
+       receiver                                        \
+       scarmt                                          \
+       sender                                          \
+       sorter                                          \
+
+SRC    =                                               \
+       chkspf.c                                        \
+       feeder.c                                        \
+       receiver.c                                      \
+       scarmt.c                                        \
+       sender.c                                        \
+       sorter.c                                        \
+
+OBJS   =                                               \
+       chkspf.o                                        \
+       feeder.o                                        \
+       receiver.o                                      \
+       scarmt.o                                        \
+       sorter.o                                        \
+       sender.o                                        \
 
 #--------------------------------------------------------------------
 #definitions
@@ -44,96 +53,82 @@ LD  =  gcc -g
 CFLAGS =  -I ../lib -Wall $(OPTIME)
 LIBMAIL        =  ../lib/libmail.a
 
-LIBS   =       $(LIBMAIL)                      \
-               -luuid                          \
-               -lcrypto                        \
-               -lcrypt                         \
-               -lssl                           \
+LIBS   =       $(LIBMAIL)                              \
+               -luuid                                  \
+               -lcrypto                                \
+               -lcrypt                                 \
+               -lssl                                   \
 
 #--------------------------------------------------------------------
 #Dependances
 #--------------------------------------------------------------------
-chkspf :  toremake chkspf.o
+chkspf                                                 \
+feeder                                                 \
+       :  toremake $(OBJS)
           @ $(LD) $(LDFLAGS) -o ../bin-posql/$@ $@.o $(LIBS)
           @ $(LD) $(LDFLAGS) -o ../bin-mysql/$@ $@.o $(LIBS)
 
-feeder :  toremake feeder.o
-          @ $(LD) $(LDFLAGS) -o ../bin-posql/$@ $@.o $(LIBS)
-          @ $(LD) $(LDFLAGS) -o ../bin-mysql/$@ $@.o $(LIBS)
-
-receiver:  toremake receiver.o
+receiver                                               \
+scarmt                                                 \
+sender                                                 \
+sorter                                                 \
+       :  toremake $(OBJS)
           @ $(LD) $(LDFLAGS)                           \
-                -o ../bin-posql/receiver receiver.o    \
+                -o ../bin-posql/$@ $@.o                \
                 $(LIBS)                                \
                 ../lib/libpos.a                        \
                 -lpq
           @ $(LD) $(LDFLAGS)                           \
-                -o ../bin-mysql/receiver receiver.o    \
+                -o ../bin-mysql/$@ $@.o                \
                 $(LIBS)                                \
                 ../lib/libmar.a                        \
                 -lmysqlclient
 
-sender:  toremake sender.o
-          @ $(LD) $(LDFLAGS)                           \
-                -o ../bin-posql/sender sender.o        \
-                $(LIBS)                                \
-                ../lib/libpos.a                        \
-                -lpq
-          @ $(LD) $(LDFLAGS)                           \
-                -o ../bin-mysql/sender sender.o        \
-                $(LIBS)                                \
-                ../lib/libmar.a                        \
-                -lmysqlclient
 
-sorter:  toremake sorter.o
-          @ $(LD) $(LDFLAGS)                           \
-                -o ../bin-posql/sorter sorter.o        \
-                $(LIBS)                                \
-                ../lib/libpos.a                        \
-                -lpq
-          @ $(LD) $(LDFLAGS)                           \
-                -o ../bin-mysql/sorter sorter.o        \
-                $(LIBS)                                \
-                ../lib/libmar.a                        \
-                -lmysqlclient
+chkspf.o:  chkspf.c                                    \
+          ../lib/unidns.h                              \
+          ../lib/subafn.h                              \
+          ../lib/subrou.h
 
-chkspf.o:  chkspf.c                            \
-          ../lib/unidns.h                      \
-          ../lib/subafn.h                      \
+receiver.o:receiver.c                                  \
+          ../lib/modrec.h                              \
+          ../lib/unitls.h                              \
+          ../lib/unisig.h                              \
+          ../lib/uniprc.h                              \
+          ../lib/unipar.h                              \
+          ../lib/unidns.h                              \
           ../lib/subrou.h
 
-receiver.o:receiver.c                          \
-          ../lib/modrec.h                      \
-          ../lib/unitls.h                      \
-          ../lib/unisig.h                      \
-          ../lib/uniprc.h                      \
-          ../lib/unipar.h                      \
-          ../lib/unidns.h                      \
+feeder.o:  feeder.c                                    \
+          ../lib/gestcp.h                              \
+          ../lib/devsoc.h                              \
+          ../lib/unieml.h                              \
+          ../lib/unipar.h                              \
           ../lib/subrou.h
 
-feeder.o:  feeder.c                            \
-          ../lib/gestcp.h                      \
-          ../lib/devsoc.h                      \
-          ../lib/unieml.h                      \
-          ../lib/unipar.h                      \
+sorter.o:  sorter.c                                    \
+          ../lib/geseml.h                              \
+          ../lib/unisig.h                              \
+          ../lib/uniprc.h                              \
+          ../lib/unipar.h                              \
+          ../lib/unieml.h                              \
+          ../lib/unidns.h                              \
           ../lib/subrou.h
 
-sorter.o:  sorter.c                            \
-          ../lib/geseml.h                      \
-          ../lib/unisig.h                      \
-          ../lib/uniprc.h                      \
-          ../lib/unipar.h                      \
-          ../lib/unieml.h                      \
-          ../lib/unidns.h                      \
+scarmt.o:  scarmt.c                                    \
+          ../lib/devsql.h                              \
+          ../lib/unipar.h                              \
+          ../lib/uniprc.h                              \
+          ../lib/unisig.h                              \
           ../lib/subrou.h
 
-sender.o:  sender.c                            \
-          ../lib/lvleml.h                      \
-          ../lib/geseml.h                      \
-          ../lib/unieml.h                      \
-          ../lib/unipar.h                      \
-          ../lib/uniprc.h                      \
-          ../lib/unisig.h                      \
+sender.o:  sender.c                                    \
+          ../lib/lvleml.h                              \
+          ../lib/geseml.h                              \
+          ../lib/unieml.h                              \
+          ../lib/unipar.h                              \
+          ../lib/uniprc.h                              \
+          ../lib/unisig.h                              \
           ../lib/subrou.h
 
 toremake:  Makefile
diff --git a/app/Makefile-postgres b/app/Makefile-postgres
deleted file mode 100644 (file)
index 95e6765..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-#--------------------------------------------------------------------
-#Executable generation area
-#--------------------------------------------------------------------
-debug  : 
-           @ $(MAKE) OPTIME="-g" DEBUG="-DDEBUG" exe 
-           @ echo "application compiled in '$@' mode now ready"
-
-prod   :
-          @ $(MAKE) OPTIME="-g -O2" exe
-          @ echo "application compiled in '$@' mode now ready"
-
-exe    :
-          $(MAKE) $(EXE)
-
-
-clean  :
-          - rm -fr *.o $(EXE)
-          - rm -fr ../bin-*/*
-
-#--------------------------------------------------------------------
-#Equivalences
-#--------------------------------------------------------------------
-EXE    =                                                       \
-       bigre                                                   \
-       receiver                                                \
-       sender                                                  \
-       sorter                                                  \
-          
-
-SRC    =                                                       \
-       receiver.c                                              \
-       sender.c                                                \
-       sorter.c                                                \
-
-#--------------------------------------------------------------------
-#definitions
-#--------------------------------------------------------------------
-CC     =  gcc 
-LD     =  gcc -g
-CFLAGS =  -I ../lib -Wall $(OPTIME)
-LIBMAIL        =  ../lib/libmail.a
-
-LIBS   =       $(LIBMAIL)                      \
-               -luuid                          \
-               -lcrypto                        \
-               -lcrypt                         \
-               -lssl                           \
-
-#--------------------------------------------------------------------
-#Dependances
-#--------------------------------------------------------------------
-receiver:  toremake $@.o
-          @ $(LD) $(LDFLAGS)                           \
-                -o ../bin-posql/$@ $@.o                \
-                $(LIBS)                                \
-                ../lib/libpos.a                        \
-                -lpq
-
-sndrpsql:  toremake sender.o
-          @ $(LD) $(LDFLAGS)                           \
-                -o ../bin-posql/sender sender.o        \
-                $(LIBS)                                \
-                ../lib/libpos.a                        \
-                -lpq
-
-sndrmsql:  toremake sender.o
-          @ $(LD) $(LDFLAGS)                           \
-                -o ../bin-mysql/sender sender.o        \
-                $(LIBS)                                \
-                ../lib/libmar.a                        \
-                -lmysqlclient
-
-srtrpsql:  toremake sorter.o
-          @ $(LD) $(LDFLAGS)                           \
-                -o ../bin-posql/sorter sorter.o        \
-                $(LIBS)                                \
-                ../lib/libpos.a                        \
-                -lpq
-
-srtrmsql:  toremake sorter.o
-          @ $(LD) $(LDFLAGS)                           \
-                -o ../bin-mysql/sorter sorter.o        \
-                $(LIBS)                                \
-                ../lib/libmar.a                        \
-                -lmysqlclient
-
-
-
-sender :  toremake sender.o
-          @ $(LD) $(LDFLAGS) -o ../bin/$@ $@.o $(LIBS)
-
-chkspf.o:  chkspf.c                            \
-          ../lib/unidns.h                      \
-          ../lib/subafn.h                      \
-          ../lib/subrou.h
-
-receiver.o:receiver.c                          \
-          ../lib/modrec.h                      \
-          ../lib/unitls.h                      \
-          ../lib/unisig.h                      \
-          ../lib/uniprc.h                      \
-          ../lib/unipar.h                      \
-          ../lib/unidns.h                      \
-          ../lib/subrou.h
-
-feeder.o:  feeder.c                            \
-          ../lib/gestcp.h                      \
-          ../lib/devsoc.h                      \
-          ../lib/unieml.h                      \
-          ../lib/unipar.h                      \
-          ../lib/subrou.h
-
-sorter.o:  sorter.c                            \
-          ../lib/geseml.h                      \
-          ../lib/unisig.h                      \
-          ../lib/uniprc.h                      \
-          ../lib/unipar.h                      \
-          ../lib/unieml.h                      \
-          ../lib/unidns.h                      \
-          ../lib/subrou.h
-
-sender.o:  sender.c                            \
-          ../lib/lvleml.h                      \
-          ../lib/geseml.h                      \
-          ../lib/unieml.h                      \
-          ../lib/unipar.h                      \
-          ../lib/uniprc.h                      \
-          ../lib/unisig.h                      \
-          ../lib/subrou.h
-
-toremake:  Makefile
-          touch toremake
-          @ - mkdir -p ../bin-common
-          @ - mkdir -p ../bin-posql
-          @ - mkdir -p ../bin-mysql
-          - echo Bingo
-          - rm -f $(EXE) *.o
-
-#--------------------------------------------------------------------
-.PHONY:   toremake
-#--------------------------------------------------------------------
diff --git a/app/scanner.c b/app/scanner.c
deleted file mode 100644 (file)
index 8f5d3a9..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-// vim: smarttab tabstop=8 shiftwidth=2 expandtab
-/********************************************************/
-/*                                                     */
-/*      SMTP protocol domain destination sorter         */
-/*     Used to take the trans directive and generate   */
-/*      a todo list a email to be send.                 */
-/*                                                      */
-/*                                                     */
-/********************************************************/
-#include        <dirent.h>
-#include        <stdlib.h>
-#include        <syslog.h>
-#include        <unistd.h>
-
-#include       "subrou.h"
-#include       "unidns.h"
-#include       "unieml.h"
-#include       "unipar.h"
-#include       "uniprc.h"
-#include       "unisig.h"
-#include       "geseml.h"
-
-/*
-\f
-*/
-/********************************************************/
-/*                                                     */
-/*     procedure to scan all files                     */
-/*                                                     */
-/********************************************************/
-static _Bool scantrans(const char *ext,_Bool todo)
-
-{
-#define OPEP    "sorter.c:scantrans,"
-
-_Bool action;
-char **fname;
-TRATYP **trans;
-int phase;
-_Bool proceed;
-
-action=false;
-fname=(char **)0;
-trans=(TRATYP **)0;
-phase=0;
-proceed=true;
-while (proceed==true) {
-  //(void) fprintf(stdout,"%s JMPDBG phase='%d' ext=<%s>\n",OPEP,phase,ext);
-  switch (phase) {
-    case 0      :       //Getting the list of file
-      fname=eml_getqfilelist(fname,ext);
-      if (fname==(char **)0)
-        phase=999;      //Nothing to do
-      break;
-    case 1      :       //Building the "trans" list
-      action=true;
-      if (fname!=(char **)0) {  //always
-        char **ptr;
-
-        ptr=fname; 
-        while (*ptr!=(char *)0) {
-          FILE *qfile;
-
-          (void) rou_alert(5,"%s fame=<%s>",OPEP,*ptr);
-          if ((qfile=eml_openqfile(*ptr,(const char *)0))!=(FILE *)0) {
-            trans=eml_scanqfile(trans,qfile);
-            (void) eml_closeqfile(qfile);
-            (void) eml_deleteqfile(*ptr);
-            }
-          ptr++;
-          }
-        trans=eml_freeall_tra(trans);
-        fname=(char **)rou_freelist((void *)fname,(genfree_t)rou_freestr); 
-        }
-      break;
-    case 2      :       //scanning translit
-      switch (todo) {
-        case true     :       //Doing todo file
-          (void) eml_todoqfile(trans);
-          break;
-        case false    :
-          (void) eml_doneqfile(trans);
-          break;
-        }
-      trans=eml_freeall_tra(trans);
-      break;
-    default     :       //SAFE Guard
-      proceed=false;
-      break;
-    }
-  phase++;
-  }
-#undef  OPEP
-return action;
-}
-/*
-\f
-*/
-/********************************************************/
-/*                                                     */
-/*     sorter central task                             */
-/*                                                     */
-/********************************************************/
-static void sorting()
-
-{
-#define OPEP    "sorter.c:sorting,"
-#define TSLEEP  10
-
-_Bool action;
-int delay;
-int phase;
-_Bool proceed;
-
-action=false;
-delay=1;
-phase=0;
-proceed=true;
-while (proceed==true) {
-  //(void) rou_alert(0,"%s JMPDBG phase='%d'",OPEP,phase);
-  switch (phase) {
-    case 0      :       //Locking access
-      if (prc_locking(appname,true,5)==false) {
-        (void) rou_alert(0,"%s Unable to lock %s exclusif acccess (system?)",
-                            OPEP,appname);
-        proceed=false;
-        }
-      break;
-    case 1      :       //got signal
-      action=false;
-      if ((hangup==true)||((reload==true))) {
-        (void) rou_alert(0,"%s got hangup or reload signal",OPEP);
-        phase=999;
-        }
-      break;
-    case 2      :       //got signal
-      action|=scantrans(EXTRANS,true);
-      break;
-    case 3      :       //got signal
-      action|=scantrans(EXDONE,false);
-      break;
-    case 4      :       //one passe only?
-      if (foreground==true)
-        phase=999;      //Immediate ending
-      break;
-    case 5      :       //lets time pass according "busy"
-      delay=TSLEEP;
-      if (action==true)
-        delay=1;
-      (void) sleep(delay);
-      phase=0;          //Looping
-      break;
-    default     :       //SAFE Guard
-      (void) prc_locking(appname,false,1);
-      proceed=false;
-      break;
-    }
-  phase++;
-  }
-
-#undef OPEP
-}
-/*
-\f
-*/
-/********************************************************/
-/*                                                     */
-/*     Main routine                                    */
-/*             Start a channel to a remote ip.port     */
-/*              read file and transmit contecnts to     */
-/*              remote SMTP server.                     */
-/*                                                     */
-/********************************************************/
-int main(int argc,char *argv[])
-
-{
-#define OPEP    "sorter.c:main,"
-
-int status;
-ARGTYP *params;
-int phase;
-_Bool proceed;
-
-status=0;
-params=(ARGTYP *)0;
-phase=0;
-proceed=true;
-while (proceed==true) {
-  //(void) rou_alert(0,"%s JMPDBG phase='%d'",OPEP,phase);
-  switch (phase) {
-    case 0      :       //checking parameters
-      if ((params=par_getparams(argc,argv,"c:d:fhi:r:v"))==(ARGTYP *)0) {
-        proceed=false;      //no need to go further
-        }
-      break;
-    case 1      :       //Preparing scan
-      (void) rou_setappname(SORTER);
-      (void) rou_modesubrou(true);
-      (void) prc_chgid(argv[0]);
-      (void) sig_modeunisig(true);
-      (void) sig_trapsignal(true,sig_alrm);
-      (void) rou_loadconfig(config,true);
-      break;
-    case 2      :       //checking if we need to go background
-      if (foreground==false) {
-        if (prc_divedivedive()!=0)
-          phase=999;    //direct exit
-        }
-      break;
-    case 3      :       //checking if we need to go background
-      (void) sorting();
-      break;
-    default     :       //end of task
-      params=par_freeparams(params);
-      (void) rou_loadconfig(config,false);
-      (void) sig_trapsignal(false,sig_alrm);
-      (void) sig_modeunisig(false);
-      (void) rou_modesubrou(false);
-      (void) closelog();
-      proceed=false;
-      break;
-    }
-  phase++;
-  }
-(void) exit(status);
-
-#undef  TSLEEP
-#undef  OPEP
-}
diff --git a/app/scarmt.c b/app/scarmt.c
new file mode 100644 (file)
index 0000000..d3870a6
--- /dev/null
@@ -0,0 +1,143 @@
+// vim: smarttab tabstop=8 shiftwidth=2 expandtab
+/********************************************************/
+/*                                                     */
+/*      Handle all remote IP creditbilty level          */
+/*      By scanning database for new entry within       */
+/*      database tables remotes and try to establish    */
+/*      remote server "credibility" according remote IP.*/
+/*                                                      */
+/*                                                     */
+/********************************************************/
+#include        <dirent.h>
+#include        <stdlib.h>
+#include        <syslog.h>
+#include        <unistd.h>
+
+#include        "devsql.h"
+#include        "unipar.h"
+#include        "uniprc.h"
+#include        "unisig.h"
+#include        "subrou.h"
+
+#define SCANNER "scarmt"       //application name
+/*
+\f
+*/
+/********************************************************/
+/*                                                     */
+/*     Procedure to check database and check new       */
+/*      remote ip credibility.                          */
+/*                                                     */
+/********************************************************/
+static void doscanning()
+
+{
+#define OPEP    "scarmt.c:doscanning,"
+
+SQLPTR *sqlptr;
+int delay;
+int phase;
+_Bool proceed;
+
+sqlptr=(SQLPTR *)0;
+delay=10;       //10 second sleeping time
+phase=0;
+proceed=true;
+while (proceed==true) {
+  switch (phase) {
+    case 0      :       //opening database
+      if ((sqlptr=sql_opensql())==(SQLPTR *)0) {
+        (void) rou_alert(0,"%s Unable to open database (Config?)",OPEP);
+        }
+      break;
+    case 1      :       //check about signal
+      if ((hangup==true)||((reload==true))) {
+        (void) rou_alert(0,"%s got hangup or reload signal",OPEP);
+        phase=999;
+        }
+      break;
+    case 2      :       //check for new entry
+      break;
+    case 3      :       //check entries
+      break;
+    case 4      :       //let continue
+      sleep(delay);
+      phase=0;          //looping the job again
+      break;
+    default     :       //SAFE Guard
+      sqlptr=sql_closesql(sqlptr);
+      proceed=false;
+      break;
+    }
+  phase++;
+  }
+
+#undef  OPEP
+}
+/*
+\f
+*/
+/********************************************************/
+/*                                                     */
+/*     Main routine                                    */
+/*             Start a channel to a remote ip.port     */
+/*              read file and transmit contecnts to     */
+/*              remote SMTP server.                     */
+/*                                                     */
+/********************************************************/
+int main(int argc,char *argv[])
+
+{
+#define OPEP    "scarmt.c:main,"
+
+int status;
+ARGTYP *params;
+int phase;
+_Bool proceed;
+
+status=0;
+params=(ARGTYP *)0;
+phase=0;
+proceed=true;
+while (proceed==true) {
+  //(void) rou_alert(0,"%s JMPDBG phase='%d'",OPEP,phase);
+  switch (phase) {
+    case 0      :       //checking parameters
+      if ((params=par_getparams(argc,argv,"c:d:fhi:r:v"))==(ARGTYP *)0) {
+        proceed=false;      //no need to go further
+        }
+      break;
+    case 1      :       //Preparing scan
+      (void) rou_setappname(SCANNER);
+      (void) rou_modesubrou(true);
+      (void) prc_chgid(argv[0]);
+      (void) sig_modeunisig(true);
+      (void) sig_trapsignal(true,sig_alrm);
+      (void) rou_loadconfig(config,true);
+      break;
+    case 2      :       //checking if we need to go background
+      if (foreground==false) {
+        if (prc_divedivedive()!=0)
+          phase=999;    //direct exit
+        }
+      break;
+    case 3      :       //do program main purpose
+      (void) doscanning();
+      break;
+    default     :       //end of task
+      params=par_freeparams(params);
+      (void) rou_loadconfig(config,false);
+      (void) sig_trapsignal(false,sig_alrm);
+      (void) sig_modeunisig(false);
+      (void) rou_modesubrou(false);
+      (void) closelog();
+      proceed=false;
+      break;
+    }
+  phase++;
+  }
+(void) exit(status);
+
+#undef  TSLEEP
+#undef  OPEP
+}
index 8f5d3a9e4d76b5f4c82c568b0ec8ba000745e9b3..23248364f0b0b0cb46d58db65bbdf6da615b913e 100644 (file)
@@ -207,7 +207,7 @@ while (proceed==true) {
           phase=999;    //direct exit
         }
       break;
-    case 3      :       //checking if we need to go background
+    case 3      :       //do program main purpose
       (void) sorting();
       break;
     default     :       //end of task
diff --git a/bin b/bin
index a311833bf7165b456e3d274227cb09302e6885cb..48018e175faaf97fdc0d7f5ee4af13cc4eebe6d4 120000 (symlink)
--- a/bin
+++ b/bin
@@ -1 +1 @@
-bin-posql
\ No newline at end of file
+bin-mysql
\ No newline at end of file