Add ha1 in account creator

This commit is contained in:
Margaux Clerc 2016-08-30 11:58:01 +02:00
parent 880c50b0b3
commit 01df9f9353
5 changed files with 57 additions and 2 deletions

View file

@ -123,6 +123,7 @@ static void _linphone_account_creator_destroy(LinphoneAccountCreator *creator) {
linphone_account_creator_cbs_unref(creator->callbacks);
if (creator->username) ms_free(creator->username);
if (creator->password) ms_free(creator->password);
if (creator->ha1) ms_free(creator->ha1);
if (creator->domain) ms_free(creator->domain);
if (creator->route) ms_free(creator->route);
if (creator->email) ms_free(creator->email);
@ -336,6 +337,15 @@ const char * linphone_account_creator_get_password(const LinphoneAccountCreator
return creator->password;
}
LinphoneAccountCreatorStatus linphone_account_creator_set_ha1(LinphoneAccountCreator *creator, const char *ha1){
set_string(&creator->ha1, ha1, FALSE);
return LinphoneAccountCreatorOK;
}
const char * linphone_account_creator_get_ha1(const LinphoneAccountCreator *creator) {
return creator->ha1;
}
LinphoneAccountCreatorStatus linphone_account_creator_set_activation_code(LinphoneAccountCreator *creator, const char *activation_code){
set_string(&creator->activation_code, activation_code, FALSE);
return LinphoneAccountCreatorOK;
@ -700,7 +710,7 @@ static void _activate_phone_number_link_cb(LinphoneXmlRpcRequest *request) {
LinphoneAccountCreatorStatus linphone_account_creator_activate_phone_number_link(LinphoneAccountCreator *creator) {
LinphoneXmlRpcRequest *request;
if (!creator->phone_number || !creator->username || !creator->activation_code || !creator->password || !creator->domain) {
if (!creator->phone_number || !creator->username || !creator->activation_code || (!creator->password && !creator->ha1) || !creator->domain) {
if (creator->callbacks->activate_phone_number_link != NULL) {
creator->callbacks->activate_phone_number_link(creator, LinphoneAccountCreatorReqFailed, "Missing required parameters");
}
@ -710,7 +720,7 @@ LinphoneAccountCreatorStatus linphone_account_creator_activate_phone_number_link
LinphoneXmlRpcArgString, creator->phone_number,
LinphoneXmlRpcArgString, creator->username,
LinphoneXmlRpcArgString, creator->activation_code,
LinphoneXmlRpcArgString, ha1_for_passwd(creator->username, creator->domain, creator->password),
LinphoneXmlRpcArgString, creator->ha1 ? creator->ha1 : ha1_for_passwd(creator->username, creator->domain, creator->password),
LinphoneXmlRpcArgNone);
linphone_xml_rpc_request_set_user_data(request, creator);
linphone_xml_rpc_request_cbs_set_response(linphone_xml_rpc_request_get_callbacks(request), _activate_phone_number_link_cb);

View file

@ -163,6 +163,21 @@ LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_passwo
**/
LINPHONE_PUBLIC const char * linphone_account_creator_get_password(const LinphoneAccountCreator *creator);
/**
* Set the ha1.
* @param[in] creator LinphoneAccountCreator object
* @param[in] password The ha1 to set
* @return LinphoneAccountCreatorOk if everything is OK, or a specific error otherwise.
**/
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_ha1(LinphoneAccountCreator *creator, const char *ha1);
/**
* Get the ha1.
* @param[in] creator LinphoneAccountCreator object
* @return The ha1 of the LinphoneAccountCreator
**/
LINPHONE_PUBLIC const char * linphone_account_creator_get_ha1(const LinphoneAccountCreator *creator);
/**
* Set the activation code.
* @param[in] creator LinphoneAccountCreator object

View file

@ -8040,6 +8040,20 @@ extern "C" jstring Java_org_linphone_core_LinphoneAccountCreatorImpl_getPassword
return password ? env->NewStringUTF(password) : NULL;
}
extern "C" jint Java_org_linphone_core_LinphoneAccountCreatorImpl_setHa1(JNIEnv *env, jobject thiz, jlong ptr, jstring jha1) {
const char *ha1 = GetStringUTFChars(env, jha1);
LinphoneAccountCreator *account_creator = (LinphoneAccountCreator *)ptr;
LinphoneAccountCreatorStatus status = linphone_account_creator_set_ha1(account_creator, ha1);
ReleaseStringUTFChars(env, jha1, ha1);
return (jint) status;
}
extern "C" jstring Java_org_linphone_core_LinphoneAccountCreatorImpl_getHa1(JNIEnv *env, jobject thiz, jlong ptr) {
LinphoneAccountCreator *account_creator = (LinphoneAccountCreator *)ptr;
const char *ha1 = linphone_account_creator_get_ha1(account_creator);
return ha1 ? env->NewStringUTF(ha1) : NULL;
}
extern "C" jint Java_org_linphone_core_LinphoneAccountCreatorImpl_setActivationCode(JNIEnv *env, jobject thiz, jlong ptr, jstring jcode) {
const char *activation_code = GetStringUTFChars(env, jcode);
LinphoneAccountCreator *account_creator = (LinphoneAccountCreator *)ptr;

View file

@ -99,6 +99,10 @@ public interface LinphoneAccountCreator {
Status setPassword(String password);
String getPassword();
Status setHa1(String ha1);
String getHa1();
Status setActivationCode(String activationCode);

View file

@ -82,6 +82,18 @@ public class LinphoneAccountCreatorImpl implements LinphoneAccountCreator {
return getPassword(nativePtr);
}
private native int setHa1(long ptr, String ha1);
@Override
public Status setHa1(String ha1) {
return Status.fromInt(setHa1(nativePtr, ha1));
}
private native String getHa1(long ptr);
@Override
public String getHa1() {
return null;
}
private native int setActivationCode(long ptr, String activationCode);
@Override
public Status setActivationCode(String activationCode) {