Example #1
0
bool mupnp_action_performlistner(mUpnpAction *action, mUpnpActionRequest *actionReq)
{
	MUPNP_ACTION_LISTNER listener;
	mUpnpActionResponse *actionRes;
	mUpnpHttpRequest *actionReqHttpReq;
	mUpnpHttpResponse *actionResHttpRes;
	
	mupnp_log_debug_l4("Entering...\n");

	listener = mupnp_action_getlistner(action);
	if (listener == NULL)
		return false;

	actionRes = mupnp_control_action_response_new();
	
	mupnp_action_setstatuscode(action, MUPNP_STATUS_INVALID_ACTION);
	mupnp_action_setstatusdescription(action, mupnp_status_code2string(MUPNP_STATUS_INVALID_ACTION));

	mupnp_action_clearoutputargumentvalues(action);
	
	if (listener(action) == true)
		mupnp_control_action_response_setresponse(actionRes, action);
	else
		mupnp_control_soap_response_setfaultresponse(mupnp_control_action_response_getsoapresponse(actionRes), mupnp_action_getstatuscode(action), mupnp_action_getstatusdescription(action));
	
	actionReqHttpReq = mupnp_soap_request_gethttprequest(mupnp_control_action_request_getsoaprequest(actionReq));
	actionResHttpRes = mupnp_soap_response_gethttpresponse(mupnp_control_action_response_getsoapresponse(actionRes));
	mupnp_http_request_postresponse(actionReqHttpReq, actionResHttpRes);	

	mupnp_control_action_response_delete(actionRes);
	
	mupnp_log_debug_l4("Leaving...\n");

	return true;
}
Example #2
0
bool mupnp_statevariable_performlistner(mUpnpStateVariable* statVar, mUpnpQueryRequest* queryReq)
{
  MUPNP_STATEVARIABLE_LISTNER listener;
  mUpnpQueryResponse* queryRes;
  mUpnpHttpRequest* queryReqHttpReq;
  mUpnpHttpResponse* queryResHttpRes;

  mupnp_log_debug_l4("Entering...\n");

  listener = mupnp_statevariable_getlistener(statVar);
  if (listener == NULL)
    return false;

  queryRes = mupnp_control_query_response_new();

  mupnp_statevariable_setstatuscode(statVar, MUPNP_STATUS_INVALID_ACTION);
  mupnp_statevariable_setstatusdescription(statVar, mupnp_status_code2string(MUPNP_STATUS_INVALID_ACTION));
  mupnp_statevariable_setvalue(statVar, "");

  if (listener(statVar) == true)
    mupnp_control_query_response_setresponse(queryRes, statVar);
  else
    mupnp_control_soap_response_setfaultresponse(mupnp_control_query_response_getsoapresponse(queryRes), mupnp_statevariable_getstatuscode(statVar), mupnp_statevariable_getstatusdescription(statVar));

  queryReqHttpReq = mupnp_soap_request_gethttprequest(mupnp_control_query_request_getsoaprequest(queryReq));
  queryResHttpRes = mupnp_soap_response_gethttpresponse(mupnp_control_query_response_getsoapresponse(queryRes));
  mupnp_http_request_postresponse(queryReqHttpReq, queryResHttpRes);

  mupnp_control_query_response_delete(queryRes);

  mupnp_log_debug_l4("Leaving...\n");

  return true;
}