+ struct lcr_gsm *gsm_ms = gsm_ms_first, **gsm_ms_p = &gsm_ms_first;
+
+ while (gsm_ms) {
+ gsm_ms_p = &gsm_ms->gsm_ms_next;
+ gsm_ms = gsm_ms->gsm_ms_next;
+ }
+
+ PDEBUG(DEBUG_GSM, "GSM: interface for MS '%s' is created\n", name);
+
+ /* create gsm instance */
+ gsm_ms = (struct lcr_gsm *)MALLOC(sizeof(struct lcr_gsm));
+
+ gsm_ms->type = LCR_GSM_TYPE_MS;
+ SCPY(gsm_ms->name, name);
+ gsm_ms->sun.sun_family = AF_UNIX;
+ SPRINT(gsm_ms->sun.sun_path, "/tmp/ms_mncc_%s", name);
+
+ memset(&gsm_ms->socket_retry, 0, sizeof(gsm_ms->socket_retry));
+ add_timer(&gsm_ms->socket_retry, mncc_socket_retry_cb, gsm_ms, 0);
+
+ /* do the initial connect */
+ mncc_socket_retry_cb(&gsm_ms->socket_retry, gsm_ms, 0);
+
+ *gsm_ms_p = gsm_ms;