static void slirp_smb(SlirpState* s, Monitor *mon, const char *exported_dir,

                      struct in_addr vserver_addr)

{

    static int instance;

    char smb_conf[128];

    char smb_cmdline[128];

    FILE *f;



    snprintf(s->smb_dir, sizeof(s->smb_dir), "/tmp/qemu-smb.%ld-%d",

             (long)getpid(), instance++);

    if (mkdir(s->smb_dir, 0700) < 0) {

        config_error(mon, "could not create samba server dir '%s'\n",

                     s->smb_dir);

        return;

    }

    snprintf(smb_conf, sizeof(smb_conf), "%s/%s", s->smb_dir, "smb.conf");



    f = fopen(smb_conf, "w");

    if (!f) {

        slirp_smb_cleanup(s);

        config_error(mon, "could not create samba server "

                     "configuration file '%s'\n", smb_conf);

        return;

    }

    fprintf(f,

            "[global]\n"

            "private dir=%s\n"

            "smb ports=0\n"

            "socket address=127.0.0.1\n"

            "pid directory=%s\n"

            "lock directory=%s\n"

            "log file=%s/log.smbd\n"

            "smb passwd file=%s/smbpasswd\n"

            "security = share\n"

            "[qemu]\n"

            "path=%s\n"

            "read only=no\n"

            "guest ok=yes\n",

            s->smb_dir,

            s->smb_dir,

            s->smb_dir,

            s->smb_dir,

            s->smb_dir,

            exported_dir

            );

    fclose(f);



    snprintf(smb_cmdline, sizeof(smb_cmdline), "%s -s %s",

             SMBD_COMMAND, smb_conf);



    if (slirp_add_exec(s->slirp, 0, smb_cmdline, &vserver_addr, 139) < 0) {

        slirp_smb_cleanup(s);

        config_error(mon, "conflicting/invalid smbserver address\n");

    }

}

static void slirp_smb(SlirpState* s, Monitor *mon, const char *exported_dir,

                      struct in_addr vserver_addr)

{

    static int instance;

    char smb_conf[128];

    char smb_cmdline[128];

    FILE *f;



    snprintf(s->smb_dir, sizeof(s->smb_dir), "/tmp/qemu-smb.%ld-%d",

             (long)getpid(), instance++);

    if (mkdir(s->smb_dir, 0700) < 0) {

        config_error(mon, "could not create samba server dir '%s'\n",

                     s->smb_dir);

        return;

    }

    snprintf(smb_conf, sizeof(smb_conf), "%s/%s", s->smb_dir, "smb.conf");



    f = fopen(smb_conf, "w");

    if (!f) {

        slirp_smb_cleanup(s);

        config_error(mon, "could not create samba server "

                     "configuration file '%s'\n", smb_conf);

        return;

    }

    fprintf(f,

            "[global]\n"

            "private dir=%s\n"

            "smb ports=0\n"

            "socket address=127.0.0.1\n"

            "pid directory=%s\n"

            "lock directory=%s\n"

            "log file=%s/log.smbd\n"

            "smb passwd file=%s/smbpasswd\n"

            "security = share\n"

            "[qemu]\n"

            "path=%s\n"

            "read only=no\n"

            "guest ok=yes\n",

            s->smb_dir,

            s->smb_dir,

            s->smb_dir,

            s->smb_dir,

            s->smb_dir,

            exported_dir

            );

    fclose(f);



    snprintf(smb_cmdline, sizeof(smb_cmdline), "%s -s %s",

             SMBD_COMMAND, smb_conf);



    if (slirp_add_exec(s->slirp, 0, smb_cmdline, &vserver_addr, 139) < 0) {

        slirp_smb_cleanup(s);

        config_error(mon, "conflicting/invalid smbserver address\n");

    }

}

static void slirp_smb(SlirpState* s, Monitor *mon, const char *exported_dir,                       struct in_addr vserver_addr)
static void FUNC_0(SlirpState* VAR_0, Monitor *VAR_1, const char *VAR_2,

                      struct in_addr VAR_3)

{

    static int VAR_4;

    char VAR_5[128];

    char VAR_6[128];

    FILE *f;



    snprintf(VAR_0->smb_dir, sizeof(VAR_0->smb_dir), "/tmp/qemu-smb.%ld-%d",

             (long)getpid(), VAR_4++);

    if (mkdir(VAR_0->smb_dir, 0700) < 0) {

        config_error(VAR_1, "could not create samba server dir '%VAR_0'\n",

                     VAR_0->smb_dir);

        return;

    }

    snprintf(VAR_5, sizeof(VAR_5), "%VAR_0/%VAR_0", VAR_0->smb_dir, "smb.conf");



    f = fopen(VAR_5, "w");

    if (!f) {

        slirp_smb_cleanup(VAR_0);

        config_error(VAR_1, "could not create samba server "

                     "configuration file '%VAR_0'\n", VAR_5);

        return;

    }

    fprintf(f,

            "[global]\n"

            "private dir=%VAR_0\n"

            "smb ports=0\n"

            "socket address=127.0.0.1\n"

            "pid directory=%VAR_0\n"

            "lock directory=%VAR_0\n"

            "log file=%VAR_0/log.smbd\n"

            "smb passwd file=%VAR_0/smbpasswd\n"

            "security = share\n"

            "[qemu]\n"

            "path=%VAR_0\n"

            "read only=no\n"

            "guest ok=yes\n",

            VAR_0->smb_dir,

            VAR_0->smb_dir,

            VAR_0->smb_dir,

            VAR_0->smb_dir,

            VAR_0->smb_dir,

            VAR_2

            );

    fclose(f);



    snprintf(VAR_6, sizeof(VAR_6), "%VAR_0 -VAR_0 %VAR_0",

             SMBD_COMMAND, VAR_5);



    if (slirp_add_exec(VAR_0->slirp, 0, VAR_6, &VAR_3, 139) < 0) {

        slirp_smb_cleanup(VAR_0);

        config_error(VAR_1, "conflicting/invalid smbserver address\n");

    }

}

static void FUNC_0(SlirpState* VAR_0, Monitor *VAR_1, const char *VAR_2,
struct in_addr VAR_3)
{ static int VAR_4; char VAR_5[128]; char VAR_6[128]; FILE *f; snprintf(VAR_0->smb_dir, sizeof(VAR_0->smb_dir), "/tmp/qemu-smb.%ld-%d",
(long)getpid(), VAR_4++); if (mkdir(VAR_0->smb_dir, 0700) < 0) { config_error(VAR_1, "could not create samba server dir '%VAR_0'\n",
VAR_0->smb_dir); return; } snprintf(VAR_5, sizeof(VAR_5), "%VAR_0/%VAR_0", VAR_0->smb_dir, "smb.conf"); f = fopen(VAR_5, "w"); if (!f) { slirp_smb_cleanup(VAR_0); config_error(VAR_1, "could not create samba server "
"configuration file '%VAR_0'\n", VAR_5); return; } fprintf(f,
"[global]\n"
"private dir=%VAR_0\n"
"smb ports=0\n"
"socket address=127.0.0.1\n"
"pid directory=%VAR_0\n"
"lock directory=%VAR_0\n"
"log file=%VAR_0/log.smbd\n"
"smb passwd file=%VAR_0/smbpasswd\n"
"security = share\n"
"[qemu]\n"
"path=%VAR_0\n"
"read only=no\n"
"guest ok=yes\n",
VAR_0->smb_dir,
VAR_0->smb_dir,
VAR_0->smb_dir,
VAR_0->smb_dir,
VAR_0->smb_dir,
VAR_2
); fclose(f); snprintf(VAR_6, sizeof(VAR_6), "%VAR_0 -VAR_0 %VAR_0",
SMBD_COMMAND, VAR_5); if (slirp_add_exec(VAR_0->slirp, 0, VAR_6, &VAR_3, 139) < 0) { slirp_smb_cleanup(VAR_0); config_error(VAR_1, "conflicting/invalid smbserver address\n"); } }