static void edit_ldap_bdn_load_data( const gchar *hostName, const gint iPort, const gint tov, const gchar* bindDN, const gchar *bindPW, int ssl, int tls ) { gchar *sHost; gchar *sMsg = NULL; gchar sPort[20]; gboolean flgConn; gboolean flgDN; GList *baseDN = NULL; edit_ldap_bdn_status_show( "" ); gtk_cmclist_clear(GTK_CMCLIST(ldapedit_basedn.basedn_list)); ldapedit_basedn_bad_server = TRUE; flgConn = flgDN = FALSE; sHost = g_strdup( hostName ); sprintf( sPort, "%d", iPort ); gtk_label_set_text(GTK_LABEL(ldapedit_basedn.host_label), hostName); gtk_label_set_text(GTK_LABEL(ldapedit_basedn.port_label), sPort); if( *sHost != '\0' ) { /* Test connection to server */ if( ldaputil_test_connect( sHost, iPort, ssl, tls, tov ) ) { /* Attempt to read base DN */ baseDN = ldaputil_read_basedn( sHost, iPort, bindDN, bindPW, tov, ssl, tls ); if( baseDN ) { GList *node = baseDN; gchar *text[2] = { NULL, NULL }; while( node ) { text[0] = (gchar *)node->data; gtk_cmclist_append(GTK_CMCLIST(ldapedit_basedn.basedn_list), text); node = g_list_next( node ); flgDN = TRUE; } mgu_free_dlist( baseDN ); baseDN = node = NULL; } ldapedit_basedn_bad_server = FALSE; flgConn = TRUE; } } g_free( sHost ); /* Display appropriate message */ if( flgConn ) { if( ! flgDN ) { sMsg = _( "Could not read Search Base(s) from server - please set manually" ); } } else { sMsg = _( "Could not connect to server" ); } edit_ldap_bdn_status_show( sMsg ); }
/** * Update list with data for current row. * \param clist List to update. */ static void imp_ldif_update_row( GtkCMCList *clist ) { Ldif_FieldRec *rec; gchar *text[ FIELDS_N_COLS ]; gint row; if( impldif_dlg.rowIndSelect < 0 ) return; row = impldif_dlg.rowIndSelect; rec = gtk_cmclist_get_row_data( clist, row ); if (!rec) return; text[ FIELD_COL_RESERVED ] = ""; text[ FIELD_COL_SELECT ] = ""; text[ FIELD_COL_FIELD ] = rec->tagName; text[ FIELD_COL_ATTRIB ] = rec->userName; gtk_cmclist_freeze( clist ); gtk_cmclist_remove( clist, row ); if( row == impldif_dlg.rowCount - 1 ) { gtk_cmclist_append( clist, text ); } else { gtk_cmclist_insert( clist, row, text ); } if( rec->selected ) { gtk_cmclist_set_pixbuf( clist, row, FIELD_COL_SELECT, markxpm ); } if( rec->reserved ) { gtk_cmclist_set_pixbuf( clist, row, FIELD_COL_RESERVED, markxpm ); } gtk_cmclist_set_row_data( clist, row, rec ); gtk_cmclist_thaw( clist ); }
/** * Load list with LDIF fields read from file. * \param ldf LDIF control data. */ static void imp_ldif_load_fields( LdifFile *ldf ) { GtkCMCList *clist = GTK_CMCLIST(impldif_dlg.clist_field); GList *node, *list; gchar *text[ FIELDS_N_COLS ]; impldif_dlg.rowIndSelect = -1; impldif_dlg.rowCount = 0; if( ! ldf->accessFlag ) return; gtk_cmclist_clear( clist ); list = ldif_get_fieldlist( ldf ); node = list; while( node ) { Ldif_FieldRec *rec = node->data; gint row; text[ FIELD_COL_RESERVED ] = ""; text[ FIELD_COL_SELECT ] = ""; text[ FIELD_COL_FIELD ] = rec->tagName; text[ FIELD_COL_ATTRIB ] = rec->userName; row = gtk_cmclist_append( clist, text ); gtk_cmclist_set_row_data( clist, row, rec ); if( rec->selected ) { gtk_cmclist_set_pixbuf( clist, row, FIELD_COL_SELECT, markxpm ); } if( rec->reserved ) { gtk_cmclist_set_pixbuf( clist, row, FIELD_COL_RESERVED, markxpm ); } impldif_dlg.rowCount++; node = g_list_next( node ); } g_list_free( list ); list = NULL; ldif_set_accessed( ldf, FALSE ); }
static void set_row (GtkCMCList *clist, gpgme_key_t key, gpgme_protocol_t proto) { const char *s; const char *text[N_COL_TITLES]; char *algo_buf; int row; gsize by_read = 0, by_written = 0; gchar *ret_str = NULL; /* first check whether the key is capable of encryption which is not * the case for revoked, expired or sign-only keys */ if (!key->can_encrypt || key->revoked || key->expired || key->disabled) return; algo_buf = g_strdup_printf ("%du/%s", key->subkeys->length, gpgme_pubkey_algo_name(key->subkeys->pubkey_algo) ); text[COL_ALGO] = algo_buf; text[COL_KEYID] = key->subkeys->keyid; s = key->uids->name; if (!s || !*s) s = key->uids->uid; if (proto == GPGME_PROTOCOL_CMS) { if (strstr(s, ",CN=")) s = strstr(s, ",CN=")+4; else if (strstr(s, "CN=")) s = strstr(s, "CN=")+3; } ret_str = NULL; if (!g_utf8_validate(s, -1, NULL)) ret_str = g_locale_to_utf8 (s, strlen(s), &by_read, &by_written, NULL); if (ret_str && by_written) { s = ret_str; } text[COL_NAME] = s; if (proto == GPGME_PROTOCOL_CMS && (!key->uids->email || !*key->uids->email)) { gpgme_user_id_t uid = key->uids->next; if (uid) s = uid->email; else s = key->uids->email; } else { s = key->uids->email; } ret_str = NULL; if (!g_utf8_validate(s, -1, NULL)) ret_str = g_locale_to_utf8 (s, strlen(s), &by_read, &by_written, NULL); if (ret_str && by_written) { s = ret_str; } text[COL_EMAIL] = s; switch (key->uids->validity) { case GPGME_VALIDITY_UNDEFINED: s = _("Undefined"); break; case GPGME_VALIDITY_NEVER: s = _("Never"); break; case GPGME_VALIDITY_MARGINAL: s = _("Marginal"); break; case GPGME_VALIDITY_FULL: s = _("Full"); break; case GPGME_VALIDITY_ULTIMATE: s = _("Ultimate"); break; case GPGME_VALIDITY_UNKNOWN: default: s = _("Unknown"); break; } text[COL_VALIDITY] = s; row = gtk_cmclist_append (clist, (gchar**)text); g_free (algo_buf); gtk_cmclist_set_row_data_full (clist, row, key, destroy_key); }