rem: _user->len, _user->s, _realm->len, _realm->s);
add: _user->len, _user->s, _realm.len, _realm.s);
context: static inline int get_ha1(str* _user, str* _domain, str* _realm, char* _table, char* _ha1){	db_key_t keys[2];	db_val_t vals[2];	db_key_t col[1];	db_res_t* res;	str result;	keys[0] = username_column;	keys[1] = domain_column;	col[0] = pass_column;		VAL_TYPE(vals) = VAL_TYPE(vals + 1) = DB_STR;	VAL_NULL(vals) = VAL_NULL(vals + 1) = 0;		VAL_STR(vals).s = _user->s;	VAL_STR(vals).len = _user->len;		VAL_STR(vals + 1).s = _realm->s;	VAL_STR(vals + 1).len = _realm->len;	     /* If there is domain in username, we must use	      * another column holding HA1 calculated with the	      * domain	      */	if ((_domain->len) && !calc_ha1) {		col[0] = pass_column_2;	}	db_use_table(db_handle, _table);	if (db_query(db_handle, keys, 0, vals, col, 2, 1, 0, &res) < 0) {		LOG(L_ERR, "get_ha1(): Error while querying database\n");		return -1;	}	if (RES_ROW_N(res) == 0) {		DBG("get_ha1(): no result for user \'%.*s@%.*s\'\n", 		    _user->len, _user->s, _realm->len, _realm->s);		db_free_query(db_handle, res);		return -1;	}        result.s = (char*)ROW_VALUES(RES_ROWS(res))[0].val.string_val;	result.len = strlen(result.s);	if (calc_ha1) {		     /* Only plaintext passwords are stored in database,		      * we have to calculate HA1 */		calc_HA1(HA_MD5, _user, _realm, &result, 0, 0, _ha1);		DBG("HA1 string calculated: %s\n", _ha1);	} else {		memcpy(_ha1, result.s, result.len);		_ha1[result.len] = '\0';	}	db_free_query(db_handle, res);	return 0;}